懂的都懂,直接上脚本
[root@localhost ~]# cat host.txt
10.10.220.19
10.10.220.17
#!/bin/bash
###################################################
# Script description: linux免密登陆+免密传输 \\
# author: SpiralStory \\
# created: 2021-11-09 \\
# Mailboxes: 1529900860@qq.com \\
# version: 1.0 \\
###################################################
InFo_date(){
date=`date +%Y-%m-%d-%k:%M:%S`
}
InFo_Echo(){
echo -e "\033[32m${1}\033[0m"
}
InFo_Echo_2(){
echo -e "\033[33m\t${1}\033[0m : \033[33m${2}\033[0m"
}
HostFile=`cat /root/host.txt`
InFo_sshkey(){
#删除本机旧密钥文件
rm -rf /root/.ssh/id_dsa*
#生成最新密钥文件
ssh-keygen -t dsa -f /root/.ssh/id_dsa -P "" -q
#遍历host文件
for ip in $HostFile
do
InFo_Echo "=======Batch the file to the host $ip=========="
sshpass -p 'SpiralStory' scp ~/.ssh/id_dsa.pub root@"$ip":/root/.ssh/authorized_keys
if [ $? -eq 0 ];then
InFo_Echo_2 IP:"$ip" "SSHkey Push Succeeded" else InFo_Echo_2 IP:"$ip" "SSHkey Push Failed"
fi
InFo_Echo "##########################END##########################\n"
done
}
InFo_sshkey
接下来传文件和登陆服务器都不需要密码了