溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux中如何使用sshpass

發(fā)布時間:2021-10-28 17:26:22 來源:億速云 閱讀:1733 作者:小新 欄目:系統(tǒng)運維

這篇文章給大家分享的是有關(guān)linux中如何使用sshpass的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

linux中如何使用sshpass

在大多數(shù)情況下,Linux 系統(tǒng)管理員使用 SSH 登錄到程 Linux 服務(wù)器時,要么是通過密碼,要么是無密碼 SSH 登錄或基于密鑰的 SSH  身份驗證。

如果你想自動在 SSH 登錄提示符中提供密碼和用戶名怎么辦?這時 sshpass 就可以幫到你了。

sshpass 是一個簡單、輕量級的命令行工具,通過它我們能夠向命令提示符本身提供密碼(非交互式密碼驗證),這樣就可以通過 cron 調(diào)度器執(zhí)行自動化的  shell 腳本進行備份。

ssh 直接使用 TTY 訪問,以確保密碼是用戶鍵盤輸入的。 sshpass 在專門的 tty 中運行 ssh,以誤導(dǎo) ssh  相信它是從用戶接收到的密碼。

重要:使用 sshpass 是最不安全的,因為所有系統(tǒng)上的用戶在命令行中通過簡單的 “ps”  命令就可看到密碼。因此,如果必要,比如說在生產(chǎn)環(huán)境,我強烈建議使用 SSH 無密碼身份驗證。

在 Linux 中安裝 sshpass

在基于 RedHat/CentOS 的系統(tǒng)中,首先需要啟用 EPEL 倉庫并使用 yum 命令安裝它。

# yum install sshpass # dnf install sshpass    [Fedora 22 及以上版本]

在 Debian/Ubuntu 和它的衍生版中,你可以使用 apt-get 命令來安裝。

$ sudo apt-get install sshpass

另外,你也可以從***的源碼安裝 sshpass,首先下載源碼并從 tar 文件中解壓出內(nèi)容:

$ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz $ tar -xvf sshpass.tar.gz $ cd sshpass-1.06 $ ./configure # sudo make install

如何在 Linux 中使用 sshpass

sshpass 與 ssh 一起使用,使用下面的命令可以查看 sshpass 的使用選項的完整描述:

$ sshpass -h

下面為顯示的 sshpass 幫助內(nèi)容:

Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters -f filename   Take password to use from file -d number     Use number as file descriptor for getting password -p password   Provide password as argument (security unwise) -e            Password is passed as env-var "SSHPASS" With no parameters - password will be taken from stdin -h            Show help (this screen) -V            Print version information At most one of -f, -d, -p or -e should be used

正如我之前提到的,sshpass 在用于腳本時才更可靠及更有用,請看下面的示例命令。

使用用戶名和密碼登錄到遠程 Linux ssh 服務(wù)器(10.42.0.1),并檢查文件系統(tǒng)磁盤使用情況,如圖所示。

$ sshpass -p 'my_pass_here' ssh aaronkilik@10.42.0.1 'df -h'

重要提示:此處,在命令行中提供了密碼,這是不安全的,不建議使用此選項。

linux中如何使用sshpass

sshpass – 使用 SSH 遠程登錄 Linux

但是,為了防止在屏幕上顯示密碼,可以使用 -e 標(biāo)志,并將密碼作為 SSHPASS 環(huán)境變量的值輸入,如下所示:

$ export SSHPASS='my_pass_here' $ echo $SSHPASS $ sshpass -e ssh aaronkilik@10.42.0.1 'df -h'

linux中如何使用sshpass

sshpass – 在終端中隱藏密碼

注意:在上面的示例中,SSHPASS 環(huán)境變量僅用于臨時目的,并將在重新啟動后刪除。

要***設(shè)置 SSHPASS 環(huán)境變量,打開 /etc/profile 文件,并在文件開頭輸入 export 語句:

export SSHPASS='my_pass_here'

保存文件并退出,接著運行下面的命令使更改生效:

$ source /etc/profile

另外,也可以使用 -f 標(biāo)志,并把密碼放在一個文件中。 這樣,您可以從文件中讀取密碼,如下所示:

$ sshpass -f password_filename ssh aaronkilik@10.42.0.1 'df -h'

linux中如何使用sshpass

sshpass – 在登錄時提供密碼文件

你也可以使用 sshpass 通過 scp 傳輸文件或者 rsync 備份/同步文件,如下所示:

------- Transfer Files Using SCP -------  $ scp -r /var/www/html/example.com --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/var/www/html ------- Backup or Sync Files Using Rsync ------- $ rsync --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/data/backup/ /backup/

更多的用法,建議閱讀 sshpass 的 man 頁面,輸入:

$ man sshpass

感謝各位的閱讀!關(guān)于“l(fā)inux中如何使用sshpass”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI