我的要求如下
我目前的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
是最近添加的,这似乎打破了前两个。
这是正确的方式还是有更简洁的方式?
答案 0 :(得分:7)
除了找出配置为什么"打破"之外,我发现了一个新的指令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
语句之下。