环境说明
- 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 服务器, 实现无密码登录
- [root@vms001 ~]# SSH-copy-id -i /root/.SSH/id_rsa.pub 192.168.157.102
- # 公钥上传到对方服务器
上传完成后再 vms002 上的 / root/.SSH/authorized_keys 文件中, 就会保存 vms001 的公钥信息, authorized_keys 文件会自动创建, 如下:
[root@vms002 ~]# cat /root/.SSH/authorized_keys
再次使用 SSH 登录, 就不需要输入密码了
- [root@vms001 ~]# SSH -i /root/.SSH/id_rsa 192.168.157.102
- # 公钥上传到目标服务器之后, 我们可以使用 - i 参数指定对应的私钥来无密码登录服务器
- [root@vms001 ~]# SSH 192.168.157.102
- # 也可以不使用 - i 参数, 直接使用 SSH 登录, 它直接默认使用的是 / root/.SSH/id_rsa 这个私钥文件
vms002 服务器操作
- [root@vms002 ~]# cd ~
- [root@vms002 ~]# SSH-keygen -t rsa #同样会生成公钥以及私钥文件
- [root@vms002 ~]# SSH-copy-id -i /root/.SSH/id_rsa.pub 192.168.157.101 #上传公钥信息到 vms001 服务器
至此, vms001 和 vms002 的 SSH 互信关系, 建立完成. 这里使用的是 root 用户创建的互信, 也可以使用普通的用户来建立互信.
在使用 ansible 的时候, 我们在 ansible 服务器上生成公钥和私钥, 然后将公钥上传到每一个被管理的服务上, 就可以实现 ansible 服务器无密码登录每一个被管服务器, 从而实现 ansible 对多台服务器的同时操作.
来源: http://www.bubuko.com/infodetail-2855411.html