python 中sshpass的使用


 

如何用SSH連接遠程服務器有兩種方式

1.利用遠程軟件控制:sshclient、Puttty、secureCRT等

2、終端命令 ssh -p 22 root@服務器ip  密碼需要手工交互式輸入(22: 端口號 root: 用戶名)

    ssh登陸不能在命令行中指定密碼。sshpass的出現,解決了這一問題。sshpass用於非交互SSH的密碼驗證,可以 -p 參數指定明文密碼,然后直接登錄遠程服務器,支持密碼從命令行、文件、環境變量中讀取。

 

其默認沒有安裝,需要手動安裝,方法如下:

sshpass下載地址:http://sourceforge.net/projects/sshpass/ 下載為一個 tar.gz的壓縮包。

$ tar -zxvf sshpass-1.05.tar.gz

$ cd sshpass-1.05

$ ./configure --prefix=/opt/sshpass #指定安裝目錄

$ make

$ make install

$ cp /opt/sshpass/bin/sshpass /usr/bin/

 

輸入命令 sshpass 如下提示即安裝成功:

 

2.用法介紹

# 免密碼登錄 $ sshpass -p password ssh username@host
sshpass -p A123456 ssh root@192.168.56.102
#從文件獲取密碼
$sshpass -f userpasswd.txt  ssh root@192.168.56.102
#從環境變量獲取密碼 $> export SSHPASS="password" $> sshpass -e ssh username@x.x.x.x 
# 遠程執行命令 $ sshpass -p password ssh username@host <cmd> 
# 通過scp上傳文件 $ sshpass -p password scp local_file root@host:remote_file # 通過scp下載文件 $ sshpass -p password scp root@host:remote_file local_file
# 循環執行多台機器的命令
for in $(cat /root/1.txt)
do
echo $i
sshpass -p123456 ssh root@$i 'ls -l'
done
 

忽略RSA Key檢查信息

第一次認證一般會有RSA key檢查的提示:

The authenticity of host ’10.x.x.x (10.x.x.x)' can't be established. RSA key fingerprint is a4:eb:8c:7d:2a:ef:d6:1c:a3:0c:e8:e5:00:d2:eb:60. Are you sure you want to continue connecting (yes/no)?

可以使用-o StrictHostKeychecking=no選項來忽略key檢查信息。sshpass -p "$SSH_PASSWD" ssh root@"$host" -o StrictHostKeyChecking=no "$@" 2>/dev/null 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM