sshpass 用法舉例


關於sshpass

背景

在Linux后台中,經常會用到ssh、scp等命令。需要進行認證,手動輸入密碼,是交互式的過程。
當將ssh、scp等命令做成自動化腳本時,可能需要非交互式的登錄過程,此時可以用sshpass。

使用舉例

使用-p參數指定登錄密碼

# 免密碼登錄
$ sshpass -p password ssh username@host

# 遠程執行命令
$ 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

忽略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 

其他方式輸入密碼

sshpass支持從文件中導入密碼或者從環境變量中導入密碼,使用舉例:

#從文件讀取密碼
    $> echo "password" > userpasswd
    $> sshpass -f userpasswd ssh username@x.x.x.x
#從環境變量獲取密碼
    $> export SSHPASS="password"
    $> sshpass -e ssh username@x.x.x.x 


免責聲明!

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



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