Linux本地机器访问远程机器免登陆设置

上一篇 / 下一篇  2019-03-09 10:00:04 / 个人分类:Linux


 这两天应领导要求,要写两个shell小脚本,实现OTB.jar的自动部署和跑批配置文件的拷贝。
  自动部署OTB.jar主要实现的功能是从开发移交的服务器上将移交的jar包文件部署到OTB测试服务器上
  跑批配置文件拷贝主要实现的功能也是从开发移交的服务器上移交的配置文件目录下的CTL格式的配置文件拷贝到跑批服务器对应目录下。

  由于这两个脚本都涉及到服务器与服务器之间的访问,并且要拷贝新移交的jar包和配置文件,都需要对当前在使用的文件进行备份,以防新移交的文件有问题时,做版本回退使用。这时候就需要进行免登陆设置。之前的测试服务器都是设置过免登的操作,但OTB是新搭建的测试服务器,因此需要做免登陆设置。
免登陆设置实际上是服务器之间的公钥配对。即本地服务器要访问远程服务器,那就要将本地服务器与远程服务器建立一个信任关系,即本地服务器生成私钥和公钥,将本地服务器的公钥与远程服务器的公钥保持一致,流程及原理图如下。

 基于密钥的验证:
    

免密登录原理:

  

 原理讲解 
1.在A上生成公钥私钥。 
2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了) 
3.Server A向Server B发送一个连接请求。 
4.Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥**,发送给Server A。 
5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录。 
总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次**验证。对于非对称**,公钥**的密文不能公钥解开,只能私钥解开。

 免登陆设置步骤:
 1. 在本地机器生成公钥和私钥文件
   使用命令ssh -keygen -t rsa - P ''
  注意:可以直接使用ssh -keygen -t rsa 然后回车三次,这里-p表示密码,-p ''则表示空密码,加-p ''只需要回车一次
   可以在当前用户的家目录下生成.ssh/id_rsa和.ssh/id_rsa.pub文件,前面是私钥文件,后面是公钥文件。
 
 2.将本地机器的公钥复制到远程服务器
  复制的方式有多种,如下:
    a. 通过scp拷贝:
例如:scp -P 22 ~/.ssh/id_rsa.pub user@host:~/authorized_keys     #可选参数-P代表指定用端口号22
     b通过ssh-copyid程序: 
      例如:ssh-copy-id user@host  #此种方式简单,不需追加改文件名,但不能指定端口号,默认以22端口
    c. 通过cat方法:
 例如:cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’
  我使用的是第二种,比较方便一点。
 3.检查远程机器~/.ssh/authorized_keys
  需要检查下远程机器的~/.ssh/authorized_keys的权限和~/.ssh文件夹的权限
chmod 700  ~/.ssh   #~/.ssh文件夹的权限需要700
chmod 600  ~/.ssh/authorized_keys  #~/.ssh/authorized_keys文件权限需要600

4.验证免登陆操作
    使用ssh IP的方式,如:ssh 192.168.1.181
   若有多个用户可以用ssh user@192.168.1.181
   第一次登录需要输入yes。

 这样就完成了免登陆操作设置。 
  








TAG:

 

评分:0

我来说两句

Open Toolbar