Linux openSSH 只能够使用SFTP 不能使用ssh登陆

2019-07-13 05:09发布

转载地址 : http://blog.51cto.com/jin771998569/1067247 实施目标: 1. 用户只能通过sftp访问,不能登录SSH
2. 用户要被锁定在特定的目录下,没有读写其它目录的权限   下面开始:
首先修改sshd的配置文件:
#vim /etc/ssh/sshd_config

将该文件的末尾修改如下:
#Subsystem sftp /usr/lib/openssh/sftp-server
#该行(上面这行)注释掉
Subsystem sftp internal-sftp 
Match group sftp
#匹配sftp组,如为单个用户可用:Match user 用户名;  设置此用户登陆时的shell设为/bin/false,这样它就不能用ssh只能用sftp
ChrootDirectory /home/
#指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
#UsePAM yes
#该行(上面这行)同样注释掉,或者移到Subsystem sftp internal-sftp的上面

下面建立sftp组和一个测试用户user,该用户属于sftp组:
# groupadd sftp
# useradd -d /home/user -m -s /bin/false -g sftp user
# sudo passwd user

重启SSH服务 sshd:
# /etc/init.d/sshd reload    # 此处原文是ssh,我在centos里是sshd

此时,使用带有sftp功能的客户端软件,比如filezilla、flashfxp就可以用testuser使用sftp方式登录服务器了;