#!/bin/bash
for ip in 31 41 7 8 9
dossh-coyp-id -i /root/.ssh/id_rsa_pub [email protected].$ip
done
問題:有互動過程
01:需要有確認yes或no
02:需要輸入密碼資訊
03:服務端埠號變化了,如何和分發公鑰
一、安裝軟體
yum -y install sshpass
二、執行免互動方式分發公鑰命令
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
如何和不需要輸入連線yes或no的確認資訊
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] "-o stricthostkeychecking=no "
服務埠號發生變化,如何批量進行分發公鑰
sshpass -p555 ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] "-o stricthostkeychecking=no"
分發公鑰指令碼:
#!/bin/bash
for ip in `cat ip.txt`
doecho "*****====host $ip pub-key is start**********"
sshpass -pqweasd ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected].$ip "-o stricthostkeychecking=no " &> /dev/null
if [ $? -eq 0 ];then
echo "host $ip is successed"
fiecho "*****====host $ip pub-key is end**********="
done
分發公鑰檢查指令碼
#!/bin/bash
cmd=$1
for ip in `cat ip.txt`
doecho "**********= host $ip check"
ssh $ip $cmd
echo ""
done
ssh配置檔案
/etc/ssh/sshd _config
port 22 -- 服務埠資訊
listenaddress 0.0.0.0 -- 監聽位址,指定一塊網絡卡能夠接受遠端訪問請求
ps:指定監聽的位址只能是本地網絡卡上有的ip
permitemptypasswords -- 是佛允許遠端使用者使用空密碼登入,預設不允許
permitrootlogin yes -- 不允許root遠端使用者直接連線主機,建議改為no
gssapiauthentication no -- 是否開機開啟gssapi認證功能,不用的時候關閉
usedns no -- 是否開機反向dns解析功能,建議關閉
ssh執行非互動式命令
如果你想用指令碼自動化登入到某台機子上,然後在上邊執行個命令,怎麼辦呢?可以使用ssh的非互動式命令 ssh zhc hongchangfirst.com home hczhang bin build.sh 這裡可以用expect模擬鍵盤輸入將密碼輸入,也可以用無密碼登入,具體就是將自己的公鑰放在對...
ssh非互動式密碼輸入
ssh登陸不能在命令列中指定密碼。sshpass的出現,解決了這一問題。sshpass用於非互動ssh的密碼驗證,一般用在sh指令碼中,無須再次輸入密碼。它允許你用 p 引數指定明文密碼,然後直接登入遠端伺服器,它支援密碼從命令列 檔案 環境變數中讀取。其預設沒有安裝,需要手動安裝,方法如下 tar...
ansible api 呼叫出現ssh互動式輸入
發現在刪掉 ssh know hosts 之後執行 ansible api 會出現以下提示 the authenticity of host 10.1.10.1.can t be established.rsa key fingerprint is 43 54 a5 c0 f8 4a a2 d2 1...