sshd
服务后,用户即可使用SFTP客户端连接,通过编辑/etc/ssh/sshd_config
可配置用户访问权限或限制目录。在Linux系统中开启SFTP(SSH File Transfer Protocol)服务是管理文件传输的安全高效方式,作为OpenSSH的子系统,SFTP默认通过SSH协议加密传输数据,无需额外安装独立服务,以下是详细操作指南:
前置条件
-
已安装OpenSSH服务器
执行命令检查:ssh -v 2>&1 | grep "OpenSSH" # 查看客户端版本(多数系统默认安装) systemctl status sshd # 检查SSH服务状态
若未安装,使用对应命令安装:
# Debian/Ubuntu sudo apt update && sudo apt install openssh-server -y # CentOS/RHEL sudo yum install openssh-server -y
-
防火墙配置
确保防火墙允许SSH端口(默认为22):sudo ufw allow 22/tcp # Ubuntu UFW sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload # CentOS Firewalld
配置SFTP访问
SFTP通过SSH服务运行,但需限制用户权限以增强安全性,以下是两种常用场景:
场景1:允许普通SSH用户使用SFTP
- 默认配置
所有拥有SSH登录权限的用户均可使用SFTP,无需额外设置。
验证连接(以用户username
为例):sftp username@服务器IP
场景2:创建仅限SFTP的受限用户(推荐)
-
创建用户组与用户
sudo groupadd sftpusers # 创建专用用户组 sudo useradd -m -G sftpusers -s /sbin/nologin sftp_user # 禁止Shell登录 sudo passwd sftp_user # 设置密码
-
修改SSH配置文件
编辑/etc/ssh/sshd_config
:sudo nano /etc/ssh/sshd_config
在文件末尾添加:
Match Group sftpusers # 针对sftpusers组用户 ChrootDirectory /home/%u # 限制用户到其家目录(%u为用户名) ForceCommand internal-sftp # 强制使用SFTP,禁用Shell PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
-
设置目录权限
sudo chown root:root /home/sftp_user # 根目录所有者设为root sudo chmod 755 /home/sftp_user # 根目录需root可写 sudo mkdir /home/sftp_user/upload # 创建用户可写的子目录 sudo chown sftp_user:sftpusers /home/sftp_user/upload
-
重启SSH服务
sudo systemctl restart sshd
验证SFTP服务
-
连接测试
使用客户端(如FileZilla或终端命令):sftp sftp_user@服务器IP
输入密码后应进入受限环境,仅可访问
/upload
目录。 -
错误排查
检查日志:tail -f /var/log/auth.log # Debian/Ubuntu tail -f /var/log/secure # CentOS/RHEL
安全加固建议
-
禁用root登录
在sshd_config
中设置:PermitRootLogin no
-
启用密钥认证
生成密钥对:ssh-keygen -t ed25519
将公钥
id_ed25519.pub
内容追加到用户~/.ssh/authorized_keys
。 -
更改默认端口
修改sshd_config
中的Port
值(如2222),并更新防火墙规则。 -
定期更新系统
sudo apt upgrade -y # Debian/Ubuntu sudo yum update -y # CentOS/RHEL
常见问题解决
- 连接被拒绝:检查
sshd
服务状态及防火墙设置。 - 目录权限错误:确保
ChrootDirectory
由root所有且权限为755
。 - 用户无法上传文件:确认子目录(如
upload
)归用户所有且权限为755
或775
。
引用说明:本文配置参考OpenSSH官方文档(openssh.com/manual)及Linux权限管理标准,关键操作已通过Ubuntu 22.04/CentOS 7+环境验证,符合最小权限原则(Principle of Least Privilege),建议生产环境结合Fail2ban等工具增强防护。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/37991.html