1. 安装OpenSSH服务器
Debian系统默认未预装OpenSSH服务器,需通过以下命令安装:
sudo apt update && sudo apt install openssh-server -y
安装完成后,SSH服务会自动启动(若未启动,可手动执行sudo systemctl start ssh)。
2. 配置SSH/SFTP服务
编辑SSH主配置文件/etc/ssh/sshd_config,完成以下关键设置:
Subsystem sftp行,修改为使用内置服务(更稳定):Subsystem sftp internal-sftp
sftpusers组的用户限制在自家目录(Chroot),并禁用不必要的功能(如端口转发、X11转发):Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
注:
%h代表用户家目录,internal-sftp表示使用SSH内置的SFTP服务(无需额外安装sftp-server)。
3. 创建SFTP专用用户组与用户
sudo groupadd sftpusers
sftpadmin用户为例,设置密码并加入sftpusers组:sudo adduser sftpadmin # 按提示设置密码(建议使用强密码)
sudo usermod -aG sftpusers sftpadmin # 将用户添加到sftpusers组
sudo chown root:root /home/sftpadmin
sudo chmod 755 /home/sftpadmin
upload),并设置用户对该目录的读写权限:sudo mkdir /home/sftpadmin/upload
sudo chown sftpadmin:sftpusers /home/sftpadmin/upload # 所有者为用户,所属组为sftpusers
sudo chmod 755 /home/sftpadmin/upload # 允许用户读写和执行(执行权限用于进入目录)
4. 重启SSH服务应用配置
修改配置文件后,需重启SSH服务使更改生效:
sudo systemctl restart ssh
可通过sudo systemctl status ssh检查服务状态(显示“active (running)”即为正常)。
5. 使用SFTP客户端连接
username为SFTP用户名,remote_host为服务器IP或域名:sftp username@remote_host
输入密码后,进入SFTP命令模式(提示符变为sftp>)。6. 常用SFTP命令
连接成功后,可使用以下命令进行远程管理:
ls(列出远程目录内容)、cd(切换远程目录,如cd upload)、mkdir(创建远程目录,如mkdir newdir)、rmdir(删除远程空目录,如rmdir olddir);get remote_file local_path(下载远程文件到本地,如get report.pdf ~/Downloads)、put local_file remote_path(上传本地文件到远程,如put document.txt /home/sftpadmin/upload)、rm(删除远程文件,如rm temp.txt);pwd(查看远程当前目录)、exit/bye(退出SFTP会话)。7. 安全注意事项
/etc/ssh/sshd_config,将PermitRootLogin设置为no,防止root用户通过SFTP直接登录:PermitRootLogin no
ssh-keygen -t rsa),将公钥(id_rsa.pub)复制到用户家目录的.ssh/authorized_keys文件中(权限设为600),提升登录安全性;sudo ufw allow from 192.168.1.100 to any port 22 # 替换为你的信任IP
sudo ufw enable # 启用防火墙
sudo apt update && sudo apt upgrade -y定期更新系统和软件,修补安全漏洞。