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