131°

使用sshpass 和 ssh-copy-id批量拷贝公钥到远程主机

在使用ansible的时候需要在被控制端写入公钥 一般我们是用ssh-copy-id root @ip 来推送公钥 但是这里还要输入一次密码 所以这里使用sshpass来替代手动输入密码,非常适合批量部署 注意,远程服务器必须可以密码登录(配置后可关闭密码登录) [root@node-14 ansible]# cat hostname.txt root@172.16.0.10 mima123 root@172.16.0.11 mima123 [root@node-14 ansible]# cat ssh-copy-id.sh #!/usr/bin/bash cat hostname.txt | while read hostname passwd do sshpass -p "$passwd" ssh-copy-id '-p 14573' -o StrictHostKeyChecking=no $hostname done 有特殊字符串的密码需要引号 否则会提示Permission denied, please try again 第一次连接有yes/no确认提示 使用StrictHostKeyChecking=no 参数解决 如果提示ERROR: ssh_exchange_identification: read: Connection reset by peer 那可能是被denyhosts封掉了 华为云的镜像有denyhosts

本文由【gaolongquan】发布于开源中国,原文链接:https://my.oschina.net/longquan/blog/3127137

全部评论: 0

    我有话说: