如何在 Linux 中將密碼傳遞給 scp 命令
將文件和目錄從一個系統(tǒng)拷貝到另一個系統(tǒng)是任何系統(tǒng)管理員的常見任務(wù)。scp,也稱為安全拷貝(secure copy),是一種 Linux 命令行實(shí)用程序,用于將文件從一臺服務(wù)器安全地拷貝或傳輸?shù)搅硪慌_服務(wù)器。scp 命令允許你將文件或目錄從本地系統(tǒng)拷貝到遠(yuǎn)程系統(tǒng),從遠(yuǎn)程系統(tǒng)拷貝到本地系統(tǒng),或在本地系統(tǒng)的兩個遠(yuǎn)程系統(tǒng)之間拷貝。
當(dāng)你使用 scp 命令時,你需要在傳輸文件之前提供遠(yuǎn)程用戶的密碼。在這篇文章中,我們將解釋如何在 Linux 中將密碼傳遞給 scp 命令。
先決條件
- 運(yùn)行 Linux 的服務(wù)器
- 在你的服務(wù)器上配置的 root 密碼
使用 SCP 命令拷貝文件
將文件從本地系統(tǒng)拷貝到遠(yuǎn)程系統(tǒng)的基本語法如下所示:
scp filename user@remotehost:/directory/path
例如,要將名為file1.txt的文件從本地系統(tǒng)拷貝到 /mnt 目錄中 IP 地址為 192.168.1.100 的遠(yuǎn)程系統(tǒng),請運(yùn)行以下命令:
scp file1.txt root@192.168.1.100:/mnt/
將文件從遠(yuǎn)程系統(tǒng)拷貝到本地系統(tǒng)的基本語法如下所示:
scp user@remotehost:/file/path local/path
例如,要將名為 file1.txt 的文件從 IP 地址為192.168.1.100的遠(yuǎn)程系統(tǒng)拷貝到/opt目錄中的本地系統(tǒng),請運(yùn)行以下命令:
scp root@192.168.1.100:/mnt/file1.txt /opt/
系統(tǒng)將提示你提供遠(yuǎn)程用戶的密碼,如下所示:
root@192.168.1.100 password:
在 Linux 中安裝 sshpass
sshpass 是一個簡單輕量級的命令行工具,它允許你為命令提示符本身提供密碼。當(dāng)你想通過 cron 作業(yè)進(jìn)行備份時,它在 shell 腳本中非常有用。默認(rèn)情況下,sshpass 不包含在任何 Linux 操作系統(tǒng)中,因此你需要在 Linux 系統(tǒng)中安裝 sshpass 實(shí)用程序以使用 SCP 命令傳遞密碼。對于基于 Ubuntu 和 Debian 的操作系統(tǒng),使用以下命令安裝 sshpass:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install sshpass -y
對于 RHEL、Fedora、CentOS 和 Rocky Linux 操作系統(tǒng),使用以下命令安裝 sshpass:
dnf install sshpass -y
安裝 sshpass 實(shí)用程序后,你可以繼續(xù)下一步。
如何使用 SCP 命令傳遞密碼
使用 SCP 命令傳遞密碼的基本語法如下所示:
sshpass -p "remote-user-password" scp filename user@remotehost:/dir/path/
例如,如果要將名為file1.txt的文件拷貝到 IP 為192.168.1.100的遠(yuǎn)程服務(wù)器,請使用以下命令:
sshpass -p "password" scp file1.txt root@192.168.1.100:/mnt/
如你所見,sshpass + SCP 命令將幫助你使用單行命令將文件和目錄從一個系統(tǒng)拷貝到另一個系統(tǒng)。
結(jié)論
在這篇文章中,我們解釋了如何在 Linux 中使用帶有 sshpass 的 SCP 命令來傳遞密碼。sshpass 將幫助你加快文件拷貝過程。你還可以使用它自動從一臺服務(wù)器備份到另一臺服務(wù)器。