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

  

  

  

  

  

  

  

  

posted @ 2021-07-07 11:36  Carl1518  阅读(33)  评论(0编辑  收藏  举报