如何为ChrootDirectory用户启用bash(ssh_config)?

我在文件末尾加了“/ etc / ssh / sshd_config”

Match Group ftpusers ChrootDirectory /home/ftpusers/ PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no 

我在做什么? 我限制了该组中的用户只能访问该目录,并且在用户使用sftp时工作,但在使用ssh连接时不起作用。

当他们试图连接时,他们得到这个错误:

 /bin/bash: No such file or directory 

这可能是因为我已经将ChrootDirectory添加到该组的sshconfiguration。

有没有另一种方法让他们使用bash并保持chrootDirectory在sshconfiguration?

我已经尝试将/bin/bin文件夹挂载到/ home / usersftp,然后在/ etc / passwd中更改该组中用户的bashpath,但仍然出现错误。

操作系统:Ubuntu服务器16.04

谢谢

你应该读一下chroot是什么。 chroot命令将根目录/更改为另一个目录。 所以,如果你将用户的chroot设置为/home/usersftp并且希望他们能够打开bash,那么bash需要位于/home/usersftp/bin/bash

至于你的问题:

有没有另一种方法让他们使用bash并保持chrootDirectory在sshconfiguration?

当然,但是你需要build立一个合适的chroot环境。 在这里解释这是有点超出范围,在互联网上有无数的例子,我敢肯定有一些在serverfault。

但是作为一个起点,你可以使用package debootstrap构build一个chroot。

绑定挂载实际上可能工作,但是当你绑定/bin/ to /home/usersftp/bin/时,你需要使用loginshell的新path,可能是/bin/bash

另一方面,如果你只想使用账号来进行文件传输,那么你可以使用一个限制性的shell而不是chroot,比如rssh。