如何在不完全限制 ssh 访问的情况下拥有受限制的 ssh 用户?

如何在不完全限制 ssh 访问的情况下拥有受限制的 ssh 用户?

我正在努力创建一个可以通过 SSH 访问我的服务器的新用户文件共享目的通过 WinSCP。我的目标是通过将默认 shell 设置为 rbash 将它们限制在主目录中,但是当我这样做时,它不会让我连接到服务器,并且会在“正在连接到主机...”消息处停止。当 shell 设置为默认 shell 时,我可以与该用户连接。我是否需要修改权限才能解决此问题?

/etc/shellsfor中有一个条目rbash

编辑

答案1

Shell 访问通常需要共享系统二进制文件和库。将用户仅限于其主目录不太可能可用(即,相关用户将无法执行太多操作)。

如果您希望用户运行某个程序,您可以将他们的登录 shell 设置为该程序。 Git 这样做是通过git-shell例如。

一般来说,在多用户系统上,最好使主目录不可读(例如通过设置适当的umask或调整主目录权限)。

答案2

我可以通过调整 .sshd_config 来限制用户如图所示。此步骤可防止它们返回系统文件。此外,我使用 更改了其他 /home/user/ 文件夹的权限chmod -R 700 /home/user/,这阻止它们进入其他主目录,同时仍然在自己的目录中具有完全的下降访问权限。

答案3

您可以创建/sshchroot/user/user./sshchroot/user将由 root 拥有并只能由 root 写入(根据ChrootDirectory需要),并且您将绑定挂载/home/user/sshchroot/user/user.这样用户甚至看不到其他主目录。

mount --bind /home/user /sshchroot/user/user # can be done in /etc/fstab

相关内容