环境说明
192.168.157.101 vms001 RHEL7.1
192.168.157.102 vms002 RHEL7.1
vms001服务器操作
1.vms001生成公钥私钥
命令执行成功,会在~/.ssh目录下生成2个文件
id_rsa.pub为公钥文件,现实生活中相当于锁
id_rsa 为私钥文件,现实生活中相当于钥匙
2.借用ssh-copy-id工具把公钥上传到vms002服务器,实现无密码登录
[[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.157.102 #公钥上传到对方服务器
上传完成后再vms002上的/root/.ssh/authorized_keys文件中,就会保存vms001的公钥信息,authorized_keys文件会自动创建,如下:
[[email protected] ~]# cat /root/.ssh/authorized_keys
再次使用ssh登录,就不需要输入密码了
[[email protected] ~]# ssh -i /root/.ssh/id_rsa 192.168.157.102 #公钥上传到目标服务器之后,我们可以使用-i参数指定对应的私钥来无密码登录服务器
[[email protected] ~]# ssh 192.168.157.102 #也可以不使用-i参数,直接使用ssh登录,它直接默认使用的是/root/.ssh/id_rsa这个私钥文件
vms002服务器操作
[[email protected] ~]# cd ~
[[email protected] ~]# ssh-keygen -t rsa #同样会生成公钥以及私钥文件
[[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.157.101 #上传公钥信息到vms001服务器
至此,vms001和vms002的ssh互信关系,建立完成。这里使用的是root用户创建的互信,也可以使用普通的用户来建立互信。
在使用ansible的时候,我们在ansible服务器上生成公钥和私钥,然后将公钥上传到每一个被管理的服务上,就可以实现ansible服务器无密码登录每一个被管服务器,从而实现ansible对多台服务器的同时操作。
原文地址:http://blog.51cto.com/2638441/2319850