Linux系统SSH 发主机密钥,发给不同密码的主机,使其互联,要怎么写脚本呀
假设当前机器为主机A,要发送SSH公钥到另一台主机B
下载ssh-copy-id脚本
wget http://git.kernel.org/cgit/ssh/ssh.git/plain/contrib/ssh-copy-id.sh
将脚本变成可执行的
chmod +x ssh-copy-id.sh
调用脚本,将主机A的SSH公钥发送到主机B上
./ssh-copy-id.sh -i pub_key_of_A.pub username_of_B@ip_of_B
这里有个脚本你可以参考一下(参考自神器 ChatGPT, bluetata 进行了Review,觉得可行)
#!/bin/bash
#定义要发送的主机IP地址
host_array=("192.168.1.101" "192.168.1.102" "192.168.1.103")
#定义用户名及密码
user="root"
passwd="password"
#定义本机的SSH公钥
pub_key="ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
#循环发送SSH公钥
for host in ${host_array[@]}
do
sshpass -p $passwd ssh -t $user@$host "echo '$pub_key' >> ~/.ssh/authorized_keys"
if [ $? -eq 0 ]; then
echo "successfully send key to $host"
else
echo "fail to send key to $host"
fi
done