安装OpenSSH服务器
sudo apt update && sudo apt install openssh-server
配置SSH以启用SFTP
编辑配置文件 /etc/ssh/sshd_config
,添加或修改以下内容:
Subsystem sftp internal-sftp # 启用SFTP子系统
Match Group sftpusers # 限制特定用户组(可选)
ChrootDirectory %h # 限制用户只能访问其主目录
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
说明:sftpusers
是建议创建的专用用户组,用于管理SFTP权限。
创建SFTP用户及目录
sudo groupadd sftpusers
sudo adduser username
sudo usermod -aG sftpusers username
sudo mkdir /home/username/uploads # 可选:创建专用上传目录
sudo chown username:sftpusers /home/username/uploads
sudo chmod 755 /home/username/uploads
重启SSH服务
sudo systemctl restart ssh
连接服务器
sftp username@server_ip
示例:sftp user@192.168.1.100
常用文件操作命令
命令 | 功能 |
---|---|
ls |
列出远程目录文件 |
cd /remote/path |
切换远程目录 |
get remote_file |
下载文件到本地(默认当前目录) |
put local_file |
上传文件到远程 |
mget file1 file2 |
批量下载文件 |
mput file1 file2 |
批量上传文件 |
rm remote_file |
删除远程文件 |
exit |
退出SFTP会话 |
使用SSH密钥认证(可选,更安全)
ssh-keygen -t rsa -b 4096
ssh-copy-id username@server_ip
/etc/ssh/sshd_config
中添加):PasswordAuthentication no
sudo systemctl restart ssh
ChrootDirectory
将用户限制在主目录,避免访问系统其他路径。/etc/ssh/sshd_config
中设置PermitRootLogin no
,避免使用root账户传输文件。完成以上步骤后,即可通过SFTP在Debian服务器与本地设备间安全传输文件。