天天看點

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

繼續閱讀