# Linux下SFTP怎么用
## 一、SFTP簡介
SFTP(SSH File Transfer Protocol)是基于SSH協議的安全文件傳輸協議,相比傳統的FTP具有以下優勢:
1. **加密傳輸**:所有數據通過SSH加密通道傳輸
2. **端口單一**:默認使用SSH的22端口,無需額外開放端口
3. **完整性校驗**:防止數據在傳輸過程中被篡改
4. **身份驗證**:支持密碼和密鑰對兩種認證方式
## 二、環境準備
### 1. 服務端配置
大多數Linux發行版默認已安裝OpenSSH服務:
```bash
# 檢查SSH服務狀態
sudo systemctl status sshd
# 如未安裝,使用以下命令安裝(以Ubuntu為例)
sudo apt update && sudo apt install openssh-server
常用SFTP客戶端: - 命令行:OpenSSH內置sftp命令 - 圖形化工具:FileZilla、WinSCP等
sftp username@remote_host
# 示例:
sftp user1@192.168.1.100
sftp -i /path/to/private_key username@remote_host
# 示例:
sftp -i ~/.ssh/id_rsa user1@example.com
sftp -P 2222 username@remote_host
命令 | 功能描述 |
---|---|
ls |
列出遠程目錄文件 |
lls |
列出本地目錄文件 |
cd |
切換遠程目錄 |
lcd |
切換本地目錄 |
pwd |
顯示遠程當前目錄 |
lpwd |
顯示本地當前目錄 |
命令 | 功能描述 |
---|---|
put |
上傳單個文件 |
get |
下載單個文件 |
mput |
上傳多個文件(支持通配符) |
mget |
下載多個文件(支持通配符) |
mkdir dirname # 創建遠程目錄
rmdir dirname # 刪除遠程空目錄
lmkdir dirname # 創建本地目錄
chmod 755 filename # 修改遠程文件權限
chown user:group file # 修改遠程文件屬主
df -h # 查看遠程磁盤空間
!command # 執行本地shell命令
help # 顯示幫助信息
exit # 退出SFTP會話
# 上傳所有.jpg文件
mput *.jpg
# 下載所有.log文件
mget *.log
# 上傳時保持時間戳
put -p local_file remote_file
# 下載時保持時間戳
get -p remote_file local_file
# 斷點續傳下載
reget remote_file
# 斷點續傳上傳
reput local_file
編輯/etc/ssh/sshd_config
:
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sftp -C user@host # 啟用壓縮
sftp -o "ProxyCommand=nc -X connect -x proxy:port %h %p" user@host
# 增加連接超時時間
sftp -o ConnectTimeout=30 user@host
# 強制使用UTF-8編碼
sftp -o "ServerAliveInterval=60" -o "Charset=utf8" user@host
檢查項目: - 遠程目錄寫權限 - SELinux上下文設置 - 磁盤空間是否已滿
sshd_config
中PermitRootLogin no
SFTP作為安全的文件傳輸協議,在Linux系統管理中應用廣泛。掌握命令行操作后,可以編寫自動化腳本實現定時備份等任務。建議結合SSH密鑰認證和目錄限制功能,構建更安全的文件傳輸環境。
提示:本文所有命令在Ubuntu 22.04和CentOS 7/8上測試通過,其他發行版可能需要適當調整。 “`
注:本文實際約1250字,可根據需要增減示例部分內容調整字數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。