如何限制指定的 SSH 用户只能从一个 IP 或主机名进行连接?

Pro*_*ter 9 ssh security user-management

我有一个监控服务器,它需要它监控的每个盒子的非 sudo 用户帐户的 SSH 连接详细信息。有没有办法可以配置特定的用户帐户,使其只能从特定的 IP(或更好的主机名)登录?我不想限制服务器上的其他用户能够从其他地址连接(否则我只会使用防火墙),或者仅对监控服务使用密码身份验证

Jak*_*uje 10

man sshd_config。可以添加AllowUsers块,您可以在其中指定用户和主机,如下所示:

AllowUsers user@host # or IP
Run Code Online (Sandbox Code Playgroud)

当然,如果您有其他用户,您还需要指定要允许登录的其他用户。

另一个解决方案(取决于错误修复!)

当我再次考虑时,有可能sshd_config像这样修改你的:

Match Host !hostname
    DenyUsers user
Match Host hostname
    AllowUsers user
Run Code Online (Sandbox Code Playgroud)

这将很容易地阻止所有用户,除了user来自hostname和来自它会阻止的其他地方user

但是它不起作用,因为上游报告的错误很少[1] [2]。但是我们承诺它会在下一个版本中得到修复。


Arr*_*cal 8

您可以对/etc/ssh/sshd_config文件的 AllowUsers 行使用通配符。所以添加以下行是可行的:

AllowUsers *@192.168.1.100
Run Code Online (Sandbox Code Playgroud)

或者:

AllowUsers *@hostname
Run Code Online (Sandbox Code Playgroud)

允许来自该 IP 地址或主机名的所有人访问。

记得:

service ssh restart
Run Code Online (Sandbox Code Playgroud)

进行更改后,只要您使用的是 15.04 之前的版本。15.04 现在使用 systemd,因此具有不同的服务控制机制。