Ubuntu SFTP加密传输实操指南
一 核心原理与准备
二 快速搭建 SFTP 服务端
sudo apt update
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
修改后重启服务:sudo systemctl restart ssh。sudo ufw allow ssh
sudo ufw enable
sftp sftpuser@your_server_ip
以上完成后,所有通过 SFTP 的文件传输均已加密。三 常见场景与配置要点
sudo groupadd sftpusers
sudo adduser sftpuser
sudo usermod -aG sftpusers sftpuser
sudo nano /etc/ssh/sshd_config
在文件末尾加入:Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
目录权限要求(否则 chroot 会失败):sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo systemctl restart ssh
ssh-keygen -t rsa -b 4096 -C "you@example.com"chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
/etc/ssh/sshd_config 中确保 PubkeyAuthentication yes、PasswordAuthentication no,重启 ssh 生效。四 验证加密与日志排查
sudo tail -f /var/log/auth.log
sftp -v sftpuser@your_server_ip
看到 SSH 握手与 SFTP 子系统启动即表明为加密通道。openssl s_client -connect your_server_ip:22 -starttls sftp
出现握手信息表示基于 SSH 的加密通道可用(用于诊断,不建议作为常规连接方式)。五 常见误区与建议
ssl_enable=YES、rsa_cert_file、rsa_private_key_file 等参数,这与 SFTP 是两套不同协议。