防止 Unix 帐户能够通过 SSH

Jam*_*404 7 users ssh permissions

可能的重复:
在 linux 中禁用普通用户(如 oracle)的直接登录,但允许 scp 和 sftp?

我想阻止 unix 帐户能够被 SSH 连接,但它应该仍然可用于 SCP/SFTP。

那可能吗?

理由是unix服务器使用应用程序的通用帐户,并且人们在使用该通用帐户而不是他们的个人帐户时登录到盒子。出于审计原因,我们希望他们使用他们的个人帐户通过 SSH 连接到盒子。

Ale*_*ios 9

这是很有可能的,并且有很多方法可以做到这一点。有杂乱无章和优雅的解决方案。这一切都取决于您想要做什么以及您想投资多少时间的细节。

如果您有一些想要限制为 scp/sftp 的仅限远程用户,您可能需要查看scponly这组有关如何使其工作的说明(假设是 Debian)。

您也可以尝试rssh,这是另一种外壳替代品来做同样的事情。

您还应该为这些受限用户创建一个组,并且(当然)将用户添加到该组中。然后,将这样的内容添加到您的sshd_config文件中(通常在/etc/ssh或 中找到/etc):

Match Group sftp-only
        ForceCommand internal-sftp
        #ChrootDirectory /somewhere/%u # Optional chroot jail
        #AllowTcpForwarding no         # Disable TCP forwarding
        #X11Forwarding no              # Disable X11 forwarding
        #Umask 700                     # Set the umask
Run Code Online (Sandbox Code Playgroud)

这将为这些用户禁用/强制诸如 TCP 转发之类的事情。你显然需要删除#你需要的那些。查看sshd_config(5)联机帮助页以获取有关此内容的更多详细信息。

在 kludges 中,最简单的方法是将用户的 shell 更改为falsenologin(分别在 Debian/bin/nologin和Debian/usr/sbin/nologin上)。稍微复杂一点的方法是/etc/profile为用户或用户组进行检查,然后用“不允许登录”消息将它们注销。如果你喜欢对冲你的赌注(我),你可以做到这一点,以及。请记住,仅靠它是不够的。

如果您有Snail Book第 8 章(可作为样本免费获得)也有一些食谱。


小智 2

是的,这是可能的,但并不容易。有一个名为 rssh 的程序,如果将其用作用户的默认 shell,则仅允许 sftp、scp、rsync、cvs 和 rdist。您当然可以编辑配置文件以进一步限制它。

http://www.pizzashack.org/rssh/