概述
SFTP (SSH 檔案傳輸協定) 是為取代不安全的 FTP 而開發的協定。`sftp` 命令使用 SSH 連線來加密所有資料和命令,因此使用者名稱、密碼、檔案內容等在網路傳輸中不會有暴露的風險。它像 FTP 一樣支援互動模式,並且使用方法類似,因此熟悉 FTP 的使用者也能輕鬆上手。
主要特點
sftp 命令的主要特點如下:
- 基於 SSH,加密所有通訊。
- 提供類似 FTP 的互動式命令介面。
- 使用單一埠(預設為 22 號),有利於防火牆環境。
- 支援多種功能,如檔案上傳(`put`)、下載(`get`)、目錄切換(`cd`, `lcd`)等。
SFTP 與 FTP 比較
SFTP 和 FTP 在檔案傳輸方式和安全性方面存在顯著差異。
- SFTP: 透過 SSH 加密資料傳輸,因此更安全。使用埠 22,透過單一埠處理所有通訊。
- FTP: 以明文傳輸資料,安全性較弱。使用埠 21,並且需要額外的埠用於資料傳輸。
主要選項
sftp 類似於 FTP,可以進入互動模式使用,也可以與特定命令一起以非互動模式使用。
1) 執行選項
2) 互動模式內部命令
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`sftp` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
透過 sftp 命令的各種使用範例來學習其功能。
以互動模式連接伺服器
sftp user@server.com
以 `user` 帳戶連接 `server.com`,進入互動模式。
下載檔案
sftp user@server.com
... (連接後)
cd /var/log
get syslog ~
從遠端伺服器的 `/var/log` 目錄下載 `syslog` 檔案到本地的 `~` 目錄。
上傳檔案
sftp user@server.com
... (連接後)
cd /var/www
put /home/user/document.txt
將本地的 `/home/user/document.txt` 檔案上傳到遠端伺服器的 `/var/www` 目錄。
以非互動模式傳輸檔案
sftp user@server.com:/remote/path <<< 'put localfile.txt'
使用 `put` 命令以非互動模式一次性上傳檔案。
安裝
sftp 在大多數 Linux 發行版中,作為 `openssh-client` 套件的一部分,預設已包含。如果已安裝 SSH 客戶端,則無需額外安裝。
Debian/Ubuntu
sudo apt update
sudo apt install -y openssh-client
RHEL/CentOS/Fedora
sudo dnf install -y openssh-clients
提示與注意事項
整理了使用 sftp 命令時需要注意的事項。
提示
- sftp 和 `scp` 一樣,使用 SSH 認證資訊。因此,可以使用 `~/.ssh/config` 檔案來方便地管理連接設定。
- 在互動模式下輸入 `help` 可以查看所有內部命令列表。除了 `put`、`get` 之外,還可以使用 `mput`、`mget` 傳輸多個檔案。
- 當發生網路問題或認證錯誤時,使用 `-v` 選項輸出詳細資訊有助於解決問題。