天天看點

免互動SSH登入工具sshpass

免互動SSH登入工具sshpass

使用 SSH 登入到遠端 Linux 伺服器時,一般預設狀态下,會出現互動提示要求手動輸入密碼。當需要将ssh、scp等指令做成自動化腳本時,由于需要人工參與,在腳本中進行自動化的 ssh 遠端連接配接就不可能實作了,sshpass的出現,解決了這一問題。sshpass用于非互動式SSH的密碼驗證,一般用在sh腳本中,無須再次輸入密碼。

下面逐一介紹sshpass的安裝與使用方法

1、yum install -y sshpass安裝sshpass工具

[root@CentOS_VM ~]# yum install -y sshpass

可能需要先安裝EPEL後再安裝sshpass yum install epel-release

2、使用-h可檢視sshpass的用法

免互動SSH登入工具sshpass

3、使用舉例

1) ssh -p 指定密碼文本字元串

sshpass -p password ssh -p 8122 [email protected]

password為遠端伺服器的密碼

XX.XX.XX.XX為遠端伺服器的IP位址

免互動SSH登入工具sshpass

2、ssh -f 指定密碼檔案

[root@CentOS_VM ~]# vi password.db

[root@CentOS_VM ~]# sshpass -f password.db ssh -p 8122 [email protected]

免互動SSH登入工具sshpass

3、以上兩種方式在指令行或者檔案中顯示了密碼,相當不安全

防止在螢幕上顯示密碼,可以使用 -e 參數,并将密碼作為SSHPASS環境變量的值輸入

export SSHPASS=password

echo $SSHPASS

sshpass -e ssh -p 8122 [email protected]

免互動SSH登入工具sshpass

4、sshpass+scp傳輸檔案

sshpass -e scp -P 8122 ./password.db [email protected]:~/

免互動SSH登入工具sshpass

Tips:由于是首次登入可能需要RSA key指紋驗證

可以加-o StrictHostKeychecking=no選項來忽略key檢查資訊

sshpass -e scp -P 8122 -o StrictHostKeychecking=no ./speedtest.py [email protected]:/

免互動SSH登入工具sshpass

總結:雖然這個sshpass工具很高效,可以免輸入密碼,但基于安全考慮強烈建議使用更安全的 ssh 公鑰認證機制