我的要求如下
我当前的 SSH 配置是
Host shortname1?
Hostname %h.prod.xyz.com
Host test-myname
Hostname combo.test-myname.xyz.com
Host *.xyz.com
Hostname %h
Hostname *.xyz.com
User myuser
Port 12345
IdentityFile ~/.ssh/id_rsa
确切的用例是
ssh shortname1a; ssh shortname1b; ssh test-myname; ssh combo.test-myname.xyz.com
Host *.xyz.com
是在对最后一个用例进行调试后最近添加的,这似乎以某种方式破坏了前两个用例。这是正确的方法还是有更简洁的方法?
最佳答案
除了找出配置“破坏”的原因之外,我还发现了一个新指令 Match
。这让我做我想做的事
Host shortname1?
Hostname %h.prod.xyz.com
Host test-myname
Hostname combo.test-myname.xyz.com
Host *.xyz.com
Hostname %h
Match Host *.xyz.com
User myuser
Port 12345
IdentityFile ~/.ssh/id_rsa
这个配置正是我需要的。我需要在比赛中使用
Host
而不是 Hostname
因为它似乎不接受 Hostname
但 Host
似乎正是我需要的。我有任意行为,因为我误解了
Hostname
不能像我以前使用的那样用作过滤器或匹配语句。它只能在 Host
或 Match
中使用,因此,它隐含在最后一个 Host
语句之下。关于使用通配符和 DRY 设置 SSH 配置文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38194800/