我的用例是,我需要复制我的 ssh 密钥,以便授权访问远程计算机。我需要能够调用一个脚本,将我的 ssh 密钥复制到远程计算机,而无需我的输入。目前,它会提示输入密码,并要求输入 RSA 指纹。 我需要它能够通过 IP 范围自动将我的主机相互添加
答案1
我相信您可以使用 sshpass。
- Ubuntu/Debian:
apt-get install sshpass
- Fedora/CentOS:
yum install sshpass
例如:
sshpass -p "PASSWORD" ssh-copy-id -o StrictHostKeyChecking=no USERNAME@IP
答案2
答案3
如果您愿意输入一次密码,以下脚本将会非常快速地将您的 ssh 密钥复制到大量主机(在 hosts.txt 中列出),而无需在命令行中输入您的密码:
# sudo yum install moreutils sshpass openssh-clients
echo 'Input Password:';
read -s SSHPASS;
export SSHPASS;
parallel -i -j 25 sshpass -e ssh-copy-id '-o ConnectTimeout=10 -o StrictHostKeyChecking=no {}' -- `cat hosts.txt`;
export SSHPASS=''