如何在 Linux 中使用 SFTP 命令在遠程服務器上傳輸文件

SFTP 是一種協議,它為使用加密的系統之間的文件傳輸提供安全和私有的通道。 對首字母縮略詞 SFTP 存在誤解,有人認為它代表安全文件傳輸協議。 它代表 SSH 文件傳輸協議。 ‘FTPS’ 中的不同之處在於,FTPS 客戶端將首先檢查 ftps 服務器的證書是否可信並使用安全套接字層協議 (TLS)。 很高興閱讀如何在 Ubuntu 18.04 上使用 SSL/TLS 配置 VSFTPD SFTP

人們可能會認為 SFTP 和 FTP 在功能上相似,但兩者採用不同的協議。 因此,您不能使用標準 FTP 客戶端連接到 SFTP 服務器。 在本指南中,我們將重點介紹常用的 SFTP 命令。

另請閱讀: 12 條管理文件的 lftp 命令示例

SFTP 的標準應用是在其自身環境中的命令接口上運行。 這就是為什麼在大多數情況下您會注意到程序界面更改為提示 sftp>。 當您調用 SFTP 會話時,通常的系統命令將不會執行,除非您使用 SFTP 命令行標準中的特定語言調用它們。

並非所有計算機都可以處理 SFTP 命令。 您可以根據所使用的操作系統選擇使用 SFTP 的圖形界面版本或命令行。 GUI 界面要求您安裝 SFTP 實用程序。

在本文中,我們將帶您了解一些可以通過 unix/linux 命令行使用的 SFTP 命令示例。

如何連接 SFTP

用於建立通信的 SSH 協議與 SFTP 通道所需的協議相同。 大多數人更喜歡使用設置為默認值的已保存密碼,但我建議使用 SSH 密鑰,您可以在需要訪問任何系統時使用它。

要啟動 SFTP 會話,您需要用戶名和遠程主機名。 或者,您可以在提示符處使用主機名的 IP 地址,如下所示:

~ # sftp [email protected]
[email protected]'s password:
Connected to [email protected].

在上面 example, 如果存在允許處理上述命令的連接,則在獲得訪問權限之前,您會看到密碼提示。

1) 如何在提示時獲得幫助

如果您不知道可以在 SFTP 命令行上使用的類型或格式,請使用“?” 或在提示下“幫助”如下

sftp ?

2) 確認工作目錄

使用命令 密碼 將提供有關工作目錄的更多信息。 這 密碼 用於檢查遠程工作目錄。

sftp> lpwd

輸出

Local working directory: /root

sftp> pwd

輸出

Remote working directory: /upload

3) 列出文件

在 SFTP 命令提示符下,您可以使用不同的命令列出遠程文件和本地文件。

遠程列表

sftp> ls

本地列表

sftp> lls

4) 上傳文件

上傳可以通過在遠程主機上放置單個或多個文件來進行。

遠程主機上的單個文件使用,

sftp> put Hello-World.txt

輸出

Uploading Hello-World.txt to /upload/Hello-World.txt
Hello-World.txt

遠程主機上的多個文件

sftp> mput *.txt

輸出

Uploading Hello-World.txt to /upload/Hello-World.txt
Hello-World.txt 100% 0 0.0KB/s 00:00
Uploading file1.txt to /upload/file1.txt
file1.txt 100% 0 0.0KB/s 00:00
Uploading file2.txt to /upload/file2.txt
file2.txt 100% 0 0.0KB/s 00:00
Uploading file3.txt to /upload/file3.txt
file3.txt 100% 0 0.0KB/s 00:00
Uploading file4.txt to /upload/file4.txt
file4.txt 100% 0 0.0KB/s 00:00

5) 下載文件

您將能夠在本地路徑或系統中下載單個或多個文件。

sftp> get file1.pdf

輸出

Fetching /upload/file1.pdf to file1.pdf

在本地路徑或系統上下載多個文件

sftp> mget * .pdf

輸出

Fetching /upload/file1.pdf to file1.pdf
Fetching /upload/file2.pdf to file2.pdf
Fetching /upload/file3.pdf to file3.pdf
Fetching /upload/file4.pdf to file4.pdf
Fetching /upload/file5.pdf to file5.pdf

很明顯,在本地系統中下載文件時使用相同的名稱。 如果要在遠程文件下載中使用不同的名稱,則應在命令末尾指定名稱。

6) 切換目錄

在遠程服務器上,您使用命令,

sftp> cd test

在本地機器上,您使用命令,

sftp> lcd Documents

7) 創建目錄

可以在遠程和本地路徑上創建目錄

本地路徑上的新目錄

sftp> mkdir test

遠程主機上的新目錄

sftp> lmkdir Documents

8) 刪除目錄

刪除遠程主機中的目錄或文件

刪除遠程主機中的文件

sftp> rm Report.xls

刪除遠程主機中的目錄

sftp> rmdir Department

注意:此命令僅在目標目錄為空時有效

9) 退出命令外殼

感嘆號! (在這種情況下稱為命令)用於退出 SFTP 命令提示符,如下所示 example.

sftp>!

[root@sftp ~]# exit
Shell exited with status 1
sftp>

看起來很簡單,SFTP 是一個非常強大的工具,用於管理服務器和管理主機之間的文件傳輸。 該實用程序可用於遠程和本地服務器。

另請閱讀:

  • 如何在 Linux 中使用 SCP 命令進行文件/目錄傳輸