SFTP服务器配置步骤
导读:一、安装OpenSSH服务器 SFTP是SSH的扩展协议,依赖OpenSSH软件包。大多数Linux发行版默认安装OpenSSH,若未安装,可通过以下命令安装: Debian/Ubuntu:sudo apt update &&am...
一、安装OpenSSH服务器
SFTP是SSH的扩展协议,依赖OpenSSH软件包。大多数Linux发行版默认安装OpenSSH,若未安装,可通过以下命令安装:
- Debian/Ubuntu:
sudo apt update & & sudo apt install openssh-server - CentOS/RHEL:
sudo yum install openssh-server
安装完成后,启动SSH服务并设置开机自启:sudo systemctl start sshd & & sudo systemctl enable sshd。
二、配置SSH服务以启用SFTP
编辑SSH主配置文件/etc/ssh/sshd_config,修改以下关键参数:
- 启用内置SFTP子系统:找到
Subsystem sftp行,取消注释或修改为Subsystem sftp internal-sftp(推荐使用内置子系统,无需额外安装sftp-server)。 - 限制用户组及权限:在文件末尾添加以下内容,将
< 用户组名>替换为自定义组(如sftpusers):
保存并退出编辑器(Match Group < 用户组名> ChrootDirectory %h # 将用户限制在其家目录(%h为用户主目录占位符) ForceCommand internal-sftp # 强制使用SFTP,禁用SSH shell访问 AllowTcpForwarding no # 禁止TCP转发 X11Forwarding no # 禁止X11转发Ctrl+X→Y→Enter)。
三、创建专用SFTP用户组及用户
- 创建用户组:
sudo groupadd < 用户组名>(如sftpusers)。 - 创建用户并加入组:
- 创建用户(设置家目录,避免使用
/home外的路径):sudo useradd -m -G < 用户组名> -s /sbin/nologin < 用户名>(-s /sbin/nologin禁止用户通过SSH登录shell)。 - 设置用户密码:
sudo passwd < 用户名>(输入两次密码)。
示例(创建sftpuser用户):sudo useradd -m -G sftpusers -s /sbin/nologin sftpuser & & sudo passwd sftpuser。
- 创建用户(设置家目录,避免使用
四、设置Chroot目录权限
Chroot目录(用户家目录)必须归root所有,且权限为755,防止用户越权修改目录结构:
- 创建家目录(若未自动创建):
sudo mkdir -p /home/< 用户名>(如/home/sftpuser)。 - 设置所有权与权限:
- 归
root所有:sudo chown root:root /home/< 用户名>。 - 设置权限:
sudo chmod 755 /home/< 用户名>。
- 归
- 创建上传子目录(可选,用于用户上传文件):
sudo mkdir /home/< 用户名> /upload。- 归用户所有:
sudo chown < 用户名> :< 用户组名> /home/< 用户名> /upload。 - 设置权限:
sudo chmod 755 /home/< 用户名> /upload(或775,允许用户写入)。
五、重启SSH服务应用配置
修改配置后,重启SSH服务使更改生效:
- Systemd系统(主流发行版):
sudo systemctl restart sshd。 - 旧版SysVinit系统(如CentOS 6):
sudo service sshd restart。
六、测试SFTP连接
使用SFTP客户端(如命令行、FileZilla或WinSCP)连接服务器:
- 命令行测试:在终端输入
sftp < 用户名> @< 服务器IP>,输入密码后若进入SFTP交互模式(显示sftp>),则配置成功。 - 常用命令验证:
- 上传文件:
put 本地文件路径 远程文件路径(如put ~/test.txt /upload/test.txt)。 - 下载文件:
get 远程文件路径 本地文件路径(如get /upload/test.txt ~/download/test.txt)。 - 列出目录:
ls(远程)或lls(本地)。 - 退出:
exit或bye。
- 上传文件:
七、安全增强建议
- 防火墙配置:允许SSH端口(默认22)通过防火墙:
- CentOS(firewalld):
sudo firewall-cmd --permanent --add-service=ssh & & sudo firewall-cmd --reload。 - Ubuntu(ufw):
sudo ufw allow ssh。
- CentOS(firewalld):
- SELinux配置(若启用):若系统启用SELinux,需调整策略允许SFTP访问用户目录:
sudo setsebool -P ssh_chroot_rw_homedirs on(允许chroot目录读写)。
- 强密码策略:要求用户设置复杂密码(包含大小写字母、数字、特殊字符),定期更换密码。
- 定期更新:保持系统和OpenSSH软件包为最新版本,修复安全漏洞。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SFTP服务器配置步骤
本文地址: https://pptw.com/jishu/744884.html
