關(guān)于sshpass
背景
在Linux后臺中,,經(jīng)常會用到ssh、scp等命令,。需要進(jìn)行認(rèn)證,,手動輸入密碼,是交互式的過程,。
當(dāng)將ssh,、scp等命令做成自動化腳本時,可能需要非交互式的登錄過程,,此時可以用sshpass,。
使用舉例
使用-p 參數(shù)指定登錄密碼
# 免密碼登錄
$ sshpass -p password ssh username@host
# 遠(yuǎn)程執(zhí)行命令
$ 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檢查信息
第一次認(rèn)證時,一般會有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支持從文件中導(dǎo)入密碼或者從環(huán)境變量中導(dǎo)入密碼,,使用舉例:
#從文件讀取密碼
$> echo "password" > userpasswd
$> sshpass -f userpasswd ssh [email protected]
#從環(huán)境變量獲取密碼
$> export SSHPASS="password"
$> sshpass -e ssh [email protected]
|