將文件連接並傳輸到遠程系統是系統管理員一直在做的事情。SSH是Linux平台上許多系統管理員使用的基本工具。SSH支持兩種身份驗證形式:
- 1.密碼認證
- 2.公鑰認證
公鑰認證被認為是這兩種方法中最安全的形式,盡管密碼認證是最流行和最容易的。但是,使用密碼驗證時,總是要求用戶輸入密碼。這種重復是乏味的。此外,SSH在外殼程序腳本中使用時也需要手動干預。如果在使用SSH密碼身份驗證時需要自動化,那么一個簡單的工具
sshpass
必不可少。
什么是sshpass
該
sshpass
實用程序旨在使用鍵盤交互密碼身份驗證模式運行SSH ,但以非交互方式運行。
SSH使用直接TTY訪問來確保密碼確實是由交互式鍵盤用戶發出的。
sshpass
在專用的TTY中運行SSH,讓SSH認為它是從交互式用戶那里獲取密碼的。
安裝sshpass
您可以
sshpass
使用以下簡單命令進行安裝:
> yum install sshpass -y
使用sshpass
在
sshpass
選項之后指定要運行的命令。通常,該命令ssh
帶有參數,但也可以是任何其他命令。不過,目前SSH密碼提示已硬編碼為sshpass
。
sshpass [-f filename | -d num | -p password | -e] [options]
命令選項
-p 密碼 密碼在命令行中給出。
-f 文件名 密碼是文件名的第一行。
-d number number是sshpass從運行程序繼承的文件描述符。從打開的文件描述符中讀取密碼。
-e 密碼來自環境變量"SSHPASS"。
用於sshpass
通過SSH登錄到遠程服務器。假設密碼為4u2tryhack
。以下是使用sshpass選項的幾種方法。
使用
-p
(這是最不安全的選擇,不應使用):
> sshpass -p "4u2tryhack" ssh username@rumenz.com
-p
在shell腳本中使用時,該選項如下所示:
> sshpass -p "4u2tryhack" ssh -o StrictHostKeyChecking=no username@rumenz.com
使用-f
選項(密碼應該是文件名的第一行):
> echo'4u2tryhack' > pass_file
> chmod 0400 pass_file
> sshpass -f pass_file ssh username@rumenz.com
-f
在shell腳本中使用以下選項:
> sshpass -f pass_file ssh -o StrictHostKeyChecking=no username@rumenz.com
使用-e
選項(密碼應該是文件名的第一行)
$ SSHPASS='4u2tryhack' sshpass -e ssh username@rumenz.com
-e
在shell腳本中使用時,該選項如下所示:
> SSHPASS ='4u2tryhack' sshpass -e ssh -o StrictHostKeyChecking=no username@rumenz.com
示例2:Rsync
sshpass
搭配使用rsync
:
> SSHPASS='4u2tryhack' rsync --rsh="sshpass -e ssh -l username" /rumenz/ rumenz.com:/opt/rumenz/
上面使用了
-e
選項,該選項將密碼傳遞給環境變量SSHPASS
我們可以-f
像這樣使用開關:
> rsync --rsh="sshpass -f pass_file ssh -l username" /rumenz/ rumenz.com:/opt/rumenz/
示例3:Scp
使用sshpass
與scp:
> scp -r /var/www/html --rsh="sshpass -f pass_file ssh -l user" rumenz.com:/var/www/html
范例4:GPG
您也可以使用
sshpass
GPG加密的文件。使用該-f
開關時,參考文件為純文本格式。讓我們看看如何使用GPG加密文件並使用它。
首先,創建一個文件,如下所示:
> echo '4u2tryhack'> .sshpasswd
接下來,使用以下
gpg
命令加密文件:
> gpg -c .sshpasswd
刪除包含明文的文件:
> rm .sshpasswd
最后,如下使用它:
> gpg -d -q .sshpassword.gpg > pass_file; sshpass -f pass_file ssh root@rumenz.com
原文鏈接:https://rumenz.com/rumenbiji/linux-sshpass.html
微信公眾號:入門小站