如何禁用除指定 IP 之外的任何 IP 的用户的 ssh 访问?

如何禁用除指定 IP 之外的任何 IP 的用户的 ssh 访问?

我需要限制用户的访问权限,以便他们只能从特定 IP 登录。任何从其他位置登录的尝试都会失败。我该怎么做?

答案1

由于我一直在搜索如何为这个完全相同的情况配置 sshd,并且由于出于AllowUsers此目的使用会迫使我列出允许每个其他用户登录(因此在我的情况下会生成一个巨大的配置文件),这样您就可以限制单个用户仅从您想要的主机进行连接,但不影响其他用户。

在 中sshd_config,在任何块之前Match(如果有):

DenyUsers user1@!thishostmayconnect,!anotherhostwhereitworks,*

办法!除了,因此它否认user1除了来自thishostmayconnect和来自anotherhostwhereitworks,但它仍然缺少主动否认*部分,这就是最后的通配符。

总结一下:user1否认每个主持人thishostmayconnect和之外anotherhostwhereitworks

这样,除此以外,其他所有用户user1都可以从他们想要的任何位置登录。

您可以创建任意数量的行来限制其他用户:

DenyUsers user1@!thishostmayconnect,!anotherhostwhereitworks,*
DenyUsers user2@!workstation,*

注意:如果您已经配置,UseDNS no则可能需要输入 IP 地址而不是主机名才能工作。

附加信息:http://manpages.ubuntu.com/manpages/cosmic/en/man5/sshd_config.5.html

答案2

添加条目AllowUsers <user>@<ip>到您的/etc/ssh/sshd_config

USER@HOST如果模式采用以下形式USER,则HOST分别检查,限制特定主机的特定用户登录。

http://manpages.ubuntu.com/manpages/hardy/man5/sshd_config.5.html

这将只允许他们从特定 IP 登录,从而阻止所有其他 IP 的登录

答案3

您可以添加防火墙规则,只允许来自特定 IP 地址的入站 SSH,而不是锁定 SSH 服务器守护程序配置。根据您发表的其他评论,听起来您可能希望所有用户只能从单个特定 IP 地址登录,就像某种跳转箱一样。

您需要制定一条iptables规则来执行此操作。

这种方法存在危险,因为您的有效配置被拆分为单独的可执行文件和配置文件。不要忘记在必要时更新它们,并确保每个人都知道所有部分是什么,以及每个部分的作用。

相关内容