天天看点

shell编程——Shell批量下发公钥

登录服务器步骤(从一台linux登录到另外一台linux)

登录服务器需要有两个步骤,一个输入yes、一个输入密码

试想如果有上千台服务器?每台都要输入yes、输入密码

ssh免输入yes,修改/etc/ssh/ssh_config

StrictHostKeyChecking no

ssh免输入密码的实现1

yum install -y epel-release

yum install -y sshpass

sshpass -p "jackin" ssh 192.168.237.131

ssh免输入密码的实现2,通过密钥

生成公钥(锁)、私钥(钥匙),公钥放被登录的服务器上,私钥需要自己保留

ssh-keygen -t rsa

手动把公钥上传到被登录的服务器上,私钥就能进行无密码登录

借助ssh-copy-id来实现公钥上传,需要输入服务器的密码

ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.237.131

sshpass -p 'jackin' ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.237.131 #sshpass自动输入密码

上千台服务器批量下发公钥,配置文件/root/.host

jackin1 192.168.237.128 jackin

jackin2 192.168.237.131 jackinpwd

Shell脚本实现批量下发公钥

OLDIFS=$IFS

IFS=$'\n'

for line in $(cat /root/.host);do

  myip=$(echo $line |awk '{print $2}')

  mypwd=$(echo $line | awk '{print $3}')

  echo "$myip $mypwd"

  sshpass -p $mypwd ssh-copy-id -i /root/.ssh/id_rsa.pub $myip

done

继续阅读