SSH免互動式分發秘鑰

2021-10-09 05:21:31 字數 1600 閱讀 6177

#!/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...