ansible 批量建立ssh key(密钥)认证

首先安装expect的 yum install expect 

cat host
192.168.0.11:passwd11
192.168.0.12:passwd12

cat copy-id.sh
#!/bin/bash
cat  ~/host |while read line
do
echo $line
PS=${line#*:}
IP=${line%:*}
 
expect <<-EOF
 
spawn ssh-copy-id $IP
puts $PS
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$PS\r" }
}
 
expect "*Number*"
expect eof
EOF

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用 Ansible 来配置 SSH 连接。在 Ansible 中,您可以通过设置主机清单文件和 Ansible 配置文件以及使用 Ansible 提供的模块来配置 SSH 连接。 首先,您需要创建一个主机清单文件,该文件列出了您要管理的远程主机的信息。在该文件中,您可以指定远程主机的 IP 地址、用户名、密码等信息。例如,创建一个名为 `hosts.ini` 的文件,并添加类似以下内容: ``` [web_servers] web1 ansible_host=192.168.0.101 ansible_user=user1 ansible_password=password1 web2 ansible_host=192.168.0.102 ansible_user=user2 ansible_password=password2 ``` 接下来,您需要创建一个 Ansible 配置文件,其中包含有关您的 SSH 连接的设置。在这里,您可以指定连接超时时间、SSH 私钥等。创建一个名为 `ansible.cfg` 的文件,并添加类似以下内容: ``` [defaults] timeout = 30 private_key_file = /path/to/your/private_key ``` 最后,您可以使用 Ansible 提供的模块来与远程主机进行交互。例如,使用 `ping` 模块测试与所有远程主机的 SSH 连接: ```shell $ ansible all -m ping -i hosts.ini ``` 上述命令将使用 `hosts.ini` 中定义的主机清单,并尝试与所有主机建立 SSH 连接进行 ping 测试。 请注意,上述配置中的明文密码是不安全的,最好使用 SSH 密钥进行身份验证。您可以将 SSH 公钥添加到远程主机上的 `~/.ssh/authorized_keys` 文件中,从而实现无密码 SSH 连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leo0718

你的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值