实现CentOS的免密登录还是挺简单的。

  1. 密钥的产生
1
ssh-keygen -t rsa

在用户家目录下的.ssh目录下产生id_rsa和id_rsa.pub两个密钥文件。其中,.pub为公钥。

  1. 公钥的上传
1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@target_IP

使用ssh-copy-id来实现自动的上传、修改配置。

  1. 增加主机配置文件
1
2
3
4
5
6
7
8
9
10
11
12
vim ~/.ssh/config
————————————————————
Host target0 //主机名称
Hostname 192.168.174.148 //主机IP或解析记录
Port 22 //SSH端口号
User root //SSH用户名

Host target1
Hostname 192.168.174.149
Port 22
User root
————————————————————
  1. 测试
1
2
3
[root@ansible_server ~]# ssh target0
Last login: Fri Dec 20 14:59:11 2019 from 192.168.174.147
[root@ansible_target0 ~]#
  1. 批量执行 在面临批量主机执行免密登录,则需要sshpass来执行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim sshpassvlmachine.sh
~~~~~~~
#!/bin/bash

for host in $(cat remote-hosts)
do
sshpass -p 'password' ssh-copy-id root@${host}
done
~~~~~~~

vim remote-hosts
~~~~~~~
192.168.174.148
192.168.174.149
~~~~~~~
chmod +x sshpassvlmachine.sh
sh sshpassvlmachine.sh