# Linux怎么安裝SFTP服務器
## 什么是SFTP
SFTP(SSH File Transfer Protocol)是基于SSH協議的安全文件傳輸協議,相比傳統的FTP,它通過加密通道傳輸數據,提供了更高的安全性。SFTP默認使用22端口(與SSH相同),無需額外配置防火墻規則。
---
## 安裝前準備
1. **系統要求**
- 任何主流Linux發行版(Ubuntu/Debian/CentOS/RHEL等)
- 已安裝SSH服務(大多數Linux默認已安裝)
- root或sudo權限
2. **檢查SSH狀態**
```bash
systemctl status sshd # CentOS/RHEL
systemctl status ssh # Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server -y
sudo groupadd sftpusers
sudo useradd -m -G sftpusers -s /bin/false sftpuser
sudo passwd sftpuser # 設置密碼
注意:
/bin/false
Shell限制用戶僅能使用SFTP
編輯/etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
添加或修改以下內容:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/files
sudo chown sftpuser:sftpuser /home/sftpuser/files
sudo systemctl restart sshd
sftp sftpuser@localhost
sftp sftpuser@your_server_ip
put local_file.txt # 上傳
get remote_file.txt # 下載
修改sshd_config
:
ChrootDirectory /var/sftp/%u
sudo mkdir /home/sftpuser/.ssh
sudo nano /home/sftpuser/.ssh/authorized_keys
sudo chmod 700 /home/sftpuser/.ssh
sudo chmod 600 /home/sftpuser/.ssh/authorized_keys
查看SFTP日志:
tail -f /var/log/auth.log # Ubuntu/Debian
tail -f /var/log/secure # CentOS/RHEL
sudo ufw allow 22 # Ubuntu
sudo firewall-cmd --add-service=ssh --permanent # CentOS
確保用戶對子目錄有寫入權限:
sudo chown -R sftpuser:sftpuser /home/sftpuser/files
Chroot目錄必須為root所有且其他用戶不可寫:
sudo chmod 755 /home/sftpuser
禁用root登錄
在sshd_config
中設置:
PermitRootLogin no
更改默認端口
修改Port 2222
并更新防火墻規則
Fail2Ban防護
安裝防暴力破解工具:
sudo apt install fail2ban
定期更新
sudo apt update && sudo apt upgrade openssh-server
通過OpenSSH內置的SFTP功能,我們可以快速搭建安全的文件傳輸服務。關鍵步驟包括:創建專用用戶、正確配置Chroot目錄權限、優化SSH配置。相比FTP,SFTP無需額外安裝服務,且安全性更高,是Linux服務器文件傳輸的理想選擇。 “`
(全文約1100字,包含配置示例、驗證方法和故障排查)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。