[步骤] SFTP 安全 (限制 SFTP 用户可以进入的目录和禁止 SFTP 用户 SSH 登录版)

步骤一:限制 SFTP 用户可以进入的目录

1.1 限制 SFTP 用户可以进入的目录

# vim /etc/ssh/sshd_config

如果是 RHEL & CentOS Linux,将以下内容:

......
Subsystem       sftp    /usr/libexec/openssh/sftp-server
......

修改为:

......
# Subsystem       sftp    /usr/libexec/openssh/sftp-server
......

如果是 openSUSE & SLE, 将以下内容:

......
Subsystem       sftp    /usr/lib/ssh/sftp-server
......

修改为:

......
# Subsystem       sftp    /usr/lib/ssh/sftp-server
......

并添加以下内容:

......
Subsystem       sftp    internal-sftp
ChrootDirectory /%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no


补充:
1) 这里以 SFTP 用户可以进入的目录只能为 /<user>
2) 其它配置方案可以参考

1.2 让限制 SFTP 用户可以进入的目录的设置生效

# systemctl restart sshd

步骤二:禁止 SFTP 用户 SSH 登录

2.1 创建 SFTP 用户

# useradd sftpuser

(补充:这里以创建名为 sftpuser 的用户为例)

2.2 禁止 SFTP 用户 SSH 登录

# usermod -s /bin/false sftpuser

(补充:这里以将用户 sftpuser 的解释器修改成 /bin/false 为例)

或者:

# usermod -s /sbin/nologin sftpuser

(补充:这里以将用户 sftpuser 的解释器修改成 /sbin/nologin 为例)

2.3 给 SFTP 用户设置密码

# passwd sftpuser

(补充:这里以给 sftp 用户设置密码为例)

2.4 创建 SFTP 用户的 SFTP 目录

2.4.1 创建 SFTP 用户的 SFTP 目录
# mkdir /sftpuser

(补充:这里以创建 /sftp 目录为例)

2.4.2 设置此 SFTP 目录的所属主
# chown root: /sftpuser

(补充:这里以设置 /sftp 目录的所属主为 root 为例)

(注意:SFTP 目录的所属主必须是 root,权限最高只能是 755,否则就算此目录的所属主是此 SFTP 用户也会报错)

2.4.3 设置此 SFTP 目录的权限
# chmod 755 /sftpuser

(补充:这里以给 /sftp 目录设置 755 权限为例)

(注意:SFTP 目录的所属主必须是 root,权限最高只能是 755,否则就算此目录的所属主是此 SFTP 用户也会报错)