linux之sshpass命令


將文件連接並傳輸到遠程系統是系統管理員一直在做的事情。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

使用sshpassscp:

> scp -r /var/www/html --rsh="sshpass -f pass_file ssh -l user" rumenz.com:/var/www/html

范例4:GPG

您也可以使用sshpassGPG加密的文件。使用該-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
微信公眾號:入門小站


免責聲明!

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



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