透過 SSH 在 Linux 機器之間傳輸檔案
簡介
透過 SSH 在 Linux 機器之間傳輸檔案是系統管理員和開發人員的一項常見任務。SSH(**安全外殼**)是一種協議,允許您在機器之間安全地傳輸檔案,以及遠端訪問和管理它們。在本文中,我們將探討透過 SSH 傳輸檔案不同的方法,並透過示例和命令演示該過程。
設定 SSH
在您能夠透過 SSH 傳輸檔案之前,您需要在源機器和目標機器上都設定 SSH。SSH 是一種安全的通訊協議,允許您遠端訪問和管理您的 Linux 機器。它在兩臺機器之間建立了一個**加密隧道**,保護您的資料免受竊聽和篡改。
您可以透過執行以下命令檢查**SSH**是否已安裝在您的機器上:
$ ssh -v
如果輸出顯示**SSH**的版本,則表示它已安裝。否則,您可以使用發行版的包管理器安裝它。
$ sudo apt-get install ssh # on Ubuntu $ sudo yum install ssh # on CentOS
安裝 SSH 後,您可以啟動 SSH 服務並將其配置為遠端訪問。
$ sudo service ssh start # on Ubuntu $ sudo systemctl start ssh # on CentOS
SCP(安全複製)
**SCP(安全複製)**是一個命令列實用程式,允許您透過 SSH 在機器之間安全地傳輸檔案。SCP 的語法類似於常規的**cp**命令,但增加了“-scp”選項。
要將檔案從本地機器複製到遠端機器,請使用以下語法:
$ scp [source file] [user]@[destination host]:[destination path]
例如,要將名為“file.txt”的檔案從本地機器複製到 IP 地址為“192.168.1.100”的遠端機器,並將其儲存在使用者“john”的主目錄中,請使用以下命令:
$ scp file.txt john@192.168.1.100:~/
要將檔案從遠端機器複製到本地機器,請使用以下語法:
$ scp [user]@[source host]:[source path] [destination file]
例如,要將名為“file.txt”的檔案從 IP 地址為“192.168.1.100”的遠端機器複製到本地機器的主目錄中,請使用以下命令:
$ scp john@192.168.1.100:~/file.txt ~
SCP 是快速複製機器之間單個檔案的絕佳工具,但是如果您需要傳輸多個檔案或整個目錄,使用 SFTP 會更高效。
SFTP(安全檔案傳輸協議)
透過 SSH 傳輸檔案的另一種方法是透過**SFTP**(安全檔案傳輸協議)。SFTP 類似於 FTP(檔案傳輸協議),但它使用 SSH 加密資料傳輸。
要使用**SFTP**傳輸檔案,您首先需要使用以下命令與遠端機器開啟 SFTP 會話:
$ sftp [user]@[host]
例如,要與 IP 地址為“192.168.1.100”且使用者為“john”的遠端機器開啟**SFTP**會話,請使用以下命令:
$ sftp john@192.168.1.100
例如,要與 IP 地址為“192.168.1.100”且使用者為“john”的遠端機器開啟 SFTP 會話,請使用以下命令:
$ sftp john@192.168.1.100
連線後,您可以使用以下 SFTP 命令傳輸檔案:
**put [原始檔] [目標檔案]** - 將檔案從本地機器上傳到遠端機器
**get [原始檔] [目標檔案]** - 將檔案從遠端機器下載到本地機器
**ls** - 列出遠端機器當前目錄中的檔案
**lls** - 列出本地機器當前目錄中的檔案
**cd [目錄]** - 更改遠端機器上的當前目錄
**lcd [目錄]** - 更改本地機器上的當前目錄
高階功能
對於更復雜的檔案傳輸場景,您可以使用**SCP**和**SFTP**的許多高階功能。例如,您可以將 SCP 與“-p”選項一起使用以保留檔案的許可權和時間戳,或者使用“-r”選項遞迴複製整個目錄。此外,您可以使用**ssh-keygen**生成金鑰對,該金鑰對可用於在**無需密碼**的情況下對遠端機器進行身份驗證。
結論
透過**SSH**在 Linux 機器之間傳輸檔案是管理和交換資料的安全有效方法。**SCP**和**SFTP**是用於透過 SSH 傳輸檔案的兩種常用工具。這兩種工具都易於使用,並提供了一種安全的資料傳輸方式。透過遵循本文提供的命令和示例,您應該能夠輕鬆地在 Linux 機器之間透過 SSH 傳輸檔案。此外,您可以使用上面提到的高階功能來調整您的檔案傳輸過程以滿足您的特定需求。