SSH无密码登录
Linux密钥生成
公钥: 相当于锁
私钥: 相当于钥匙,防止丢失
Linux使用命令生成公私钥:
ssh-keygen -f /root/.ssh/id_rsa -N ''
使用工具放置公钥
ssh-copy-id 192.168.1.35
输入密码下发公钥
SSH操作服务器
ssh登录服务器 -> 执行Shell命令 -> 执行完退出
ssh 127.0.0.1 "echo sjgtest"
Shell批量部署示例
for ip in $(cat /root/sjghost);do echo $ip ssh ${ip} "echo deploying" done
Shell批量下发部署脚本、部署包等
for ip in $(cat /root/sjghost);do echo $ip scp -r /tmp/sjg.log ${ip}:/usr/local/src/ done
Shell批量拉取文件等
for ip in $(cat /root/sjghost);do echo $ip scp root@${ip}:/usr/local/src/sjg.log /tmp/sjg.log.${ip} done
ssh公钥批量下发
ssh-copy-id下发公钥 ssh-copy-id -i /root/.ssh/id_rsa.pub 127.0.0.1
sshpass命令可实现自动输入密码
yum install sshpass -y sshpass -p "xxx" ssh-copy-id -i /root/.ssh/id_rsa.pub xxx.xxx.xxx.xxx
批量下发公钥实现脚本deployrsa.sh
IFSBAK=$IFS IFS=$'\n' for line in $(cat /root/sjghost);do myhostname=$(echo "$line" | awk '{print $1}') myip=$(echo "$line" | awk '{print $2}') mypwd=$(echo "$line" | awk '{print $3}') sshpass -p "$mypwd" ssh-copy-id -i /root/.ssh/id_rsa.pub $myip done IFS=$IFSBAK