如何在CentOS 7上启用没有Shell访问权限的SFTP

387 阅读1分钟
Step 1:创建新用户
[root@localhost ~]# adduser guest
[root@localhost ~]# passwd guest
Step 2:为文件传输创建目录
[root@localhost ~]# mkdir -p /var/sftp/uploads
[root@localhost ~]# chown root:root /var/sftp    <<< 设置所有者为root
[root@localhost ~]# chmod 755 /var/sftp          <<< 授予同一目录的root写权限,并为其他用户提供只读和执行权限
[root@localhost ~]# chown guest:guest /var/sftp/uploads    <<<将uploads目录的所有权更改为guest
Step 3:限制对一个目录的访问
[root@localhost ~]# vi /etc/ssh/sshd_config 
Match User guest
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
  • Match User告诉SSH服务器仅将以下命令应用于指定的用户。在这里,我们指定guest。
  • ForceCommand internal-sftp 强制SSH服务器在登录时运行SFTP服务器,禁止shell访问。
  • PasswordAuthentication yes 允许该用户进行密码验证。
  • ChrootDirectory /var/sftp/确保不允许用户访问/var/sftp目录之外的任何内容。您可以在这个基于Ubuntu的chroot教程中了解有关chroot的更多信息。
  • AllowAgentForwarding no,AllowTcpForwarding no。并X11Forwarding no禁用此用户的端口转发,隧道和X11转发
[root@localhost ~]# systemctl restart sshd
参考:

www.digitalocean.com/community/t…