方法一:直接使用for循环操作拷贝
1
2 3 4 5 |
#指令
for i in `seq 61 63` do ssh-copy-id -i /root/.ssh/id_rsa.pub user_name@192.168.31.$i done |
方法二:使用ansible-playbook实现
1、安装ansible
1
2 |
[root@~]# yum install epel-release -y
[root@~]# yum install ansible -y |
2、修改ansible配置,没有修改可能会报如下错误
1
|
Using a SSH password instead of a key is not possible because Host Key checking is enabl ed and sshp
|
3、需要修改 ansible.cfg 配置
1
2 3 4 5 |
[root@~]# vi /etc/ansible/ansible.cfg
#host_key_checking = False |
4、生成密钥
1
2 |
[root@~]# ssh-keygen -t rsa
[root@~]# cd ssh-playbook |
5、修改hosts配置(各主机的密码均为root)
1
2 3 4 5 6 7 8 9 10 11 |
[root@ ssh-playbook]# vi hosts
修改 ssh 与 [ssh:vars]字段 [ssh] [ssh:vars] |
如果各主机密码不相同时使用如何配置
1
2 3 4 |
[ssh]
192.168.31.61 ansible_ssh_user="root" ansible_ssh_pass="root61" 192.168.31.62 ansible_ssh_user="root" ansible_ssh_pass="root62" 192.168.31.63 ansible_ssh_user="root" ansible_ssh_pass="root63" |
6、ssh_key.yaml内容
1
2 3 4 5 6 |
[root@ ssh-playbook]# cat ssh_key.yaml
--- #标识 - hosts: ssh tasks: - name: ssh-copy authorized_key: user=root key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}" state=present |
7、执行剧本
1
|
[root@ ssh-playbook]# ansible-playbook -i hosts ssh_key.yaml
|
欢迎来撩 : 汇总all