sshd 服务器:匹配客户端的子域名,而不仅仅是该客户端的 IP

sshd 服务器:匹配客户端的子域名,而不仅仅是该客户端的 IP

使用 openssh 9.2

为了安全起见,我使用 match 来限制可以访问 ssh 服务器的客户端

Match Address 10.0.0.30
    PubkeyAuthentication yes

这工作正常,但由于此客户端计算机可能会更改其 IP,因此我希望 SSH 服务器“查找” IP 地址。就像这样

Match Address myclient.mydomain.net
    PubkeyAuthentication yes

该子域名可通过 DNS 访问,因此如果您在该 ssh 服务器上执行其中的操作,nslookup则会myclient.mydomain.net报告10.0.0.30

遗憾的是,这不起作用:(。那么 openssh 是否支持这样的 DNS 查找,如果支持,那么语法是什么? 我尝试了Host匹配,但我认为这指的是 ssh 服务器主机。还有一个RDomain匹配,但它也没有像我希望的那样工作。

该手册对我没有帮助。

https://www.man7.org/linux/man-pages/man5/sshd_config.5.html

     Match   Introduces a conditional block.  If all of the criteria on
             the Match line are satisfied, the keywords on the following
             lines override those set in the global section of the
             config file, until either another Match line or the end of
             the file.  If a keyword appears in multiple Match blocks
             that are satisfied, only the first instance of the keyword
             is applied.

             The arguments to Match are one or more criteria-pattern
             pairs or the single token All which matches all criteria.
             The available criteria are User, Group, Host, LocalAddress,
             LocalPort, RDomain, and Address (with RDomain representing
             the rdomain(4) on which the connection was received).

             The match patterns may consist of single entries or comma-
             separated lists and may use the wildcard and negation
             operators described in the PATTERNS section of
             ssh_config(5).

答案1

我认为这种方法行不通。这种方法不安全,因为 IP 地址的变化速度比 DNS 快,而且实施起来也不太可行。

我建议只设置基于密钥的身份验证,禁用密码身份验证,而不必担心 IP 地址。

只要你保密你的密钥,这将是完全安全的。

如果你需要有关 openssh 服务器的基于密钥的身份验证的信息,你可能会发现互联网上有很多信息。一个随机示例是文章 如何在 Linux 服务器上配置基于 SSH 密钥的身份验证

答案2

尝试使用

Match Host bob.builder.com

相关内容