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