/bin/bash: no such file or dir

部署完sftp 后 ssh 报错 /bin/bash: No such file or directory
会话中的根目录 "/" 已经切换为你所设置的 chroot 目录,除非你的 chroot 就是系统的 "/" 目录,否则此时的 chroot/bin 下是不会有 bash 命令的,请问还想要ssh登陆的话如何解决这个报错 ?

[root@localhost bin]# ln -s /bin/sh /chroot/bin/bash
ln: failed to create symbolic link ‘/chroot/bin/bash’: No such file or directory
[root@localhost bin]# touch /chroot/bin/bash
touch: cannot touch ‘/chroot/bin/bash’: No such file or directory
[root@localhost bin]#

可以参考这个帖子,和你的问题是一样的,ChrootDirectory 配置的有问题

img

参考一下这篇文章:


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

1、备份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
 

2、重启SSH服务 
service sshd restart
3、验证

参考这里看看CentOS7指定某一账号只能SFTP登陆,禁止ssh登陆踩坑/bin/bash: No such file or directory_只允许sftp不允许ssh_乘续远的博客-CSDN博客