CentOS7指定某一账号只能SFTP登陆,禁止ssh登陆踩坑/bin/bash: No such file or directory

背景

      1、指定已用户只能通过sftp访问,不能通过SSH登陆,并锁定在特定的目录下

      2、遇到的问题:

               修改/etc/ssh/sshd_config配置文件重启sshd导致其他用户登录报错:/bin/bash: No such file or directory

1、建立SFTP用户组

groupadd sftp

2、建立sftp用户

useradd -d /home/was -m -s /bin/false -g sftp was

3、设置密码

passwd was

4、创建指定sftp目录

mkdir /sftp

5、备份ssh配置文件并修改

cp /etc/ssh/sshd_config /etc/ssh/sshd_config_back
vi /etc/ssh/sshd_config

1)注释该行,添加新配置

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

2)打开注释

# Example of overriding settings on a per-user basis
#Match User was       #指定单用户的话使用这个配置,是使用的是用户组
Match group sftp
        X11Forwarding no                           #禁止X11转发
        AllowTcpForwarding no                      #禁止tcp转发
#       PermitTTY no 
        ForceCommand internal-sftp                 #指定sftp命令,不能ssh连接
        ChrootDirectory /sftp                      #指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写

注意踩坑点:配置 ChrootDirectory /sftp   必须在这个  Match group sftp   配置后面  不然重启sshd后登录所有账号都报错:/bin/bash: No such file or directory

一般出现问题会在ChrootDirectory directory上,这个目录的用户和用户组必须是root:root,在这个目录下建对应sftp账号的目录并给这个用户相应权限

如:

mkdir -p /sftp/was
chown was:sftp /sftp/was
chmod 755 /sftp/was

6、重启SSH服务 

service sshd restart

7、验证

ssh登录验证

sftp登录验证

      

猜你喜欢

转载自blog.csdn.net/qq_35335755/article/details/112371457
今日推荐