如何默认将 SSH 代理连接转发到不合格的主机名?

如何默认将 SSH 代理连接转发到不合格的主机名?

我的 resolv.conf 搜索顺序中有许多本地域。当我连接到不合格(没有 DNS 后缀)的主机名时,我非常希望默认转发 SSH 代理。我能想到的最好的办法是 ~/.ssh/config 中的以下内容:

Host *.edu
    ForwardAgent no
Host *.com
    ForwardAgent no
Host *.net
    ForwardAgent no
Host *.org
    ForwardAgent no
Host *
    ForwardAgent yes

以及列出我仍然想要转发到的 edu/com/net/org 的已知后缀,例如 .srv.example.com。

对于具有主机命名前缀约定的站点(例如 fedora 系统的 fc-*),简单的通配符条目可以匹配它们,但这对通用或无前缀的名称不起作用。

有没有比上述丑陋的黑客更好的方法来做到这一点?

答案1

这很简单:

Host *.*
   ForwardAgent no

Host *
    ForwardAgent yes

第一行基本上匹配了至少包含一个的所有内容.,并且由于第一个匹配项有效,因此下一行中的更广泛模式永远不会被评估。显然,你会将特定主机置于所有这些之上。

相关内容