我以不同的子域的形式连接到一系列服务器,这些服务器host.subdomain.domain.example.com
可能有或可能没有同名的主机。
一个显然简单的解决方案是做类似的事情
host *
hostname %h.domain.example.com
然后简单地做ssh [email protected]
但是,子域名同样很长,难以阅读,容易出错。我目前的做法是使用 bash 别名,它调用一个函数,从查找表中将一些用户友好的名称解析为正确的子域名,然后启动以下形式的 ssh 命令ssh [email protected]
但我想知道是否有办法直接从 ssh 的配置中执行此操作
例如,
host *.alias1
hostname [host without .alias1].subdomain1.domain.example.com
host *.alias2
hostname [host without .alias2].subdomain2.domain.example.com
host *.alias3
hostname [host without .alias3].subdomain3.domain.example.com
===================================== 编辑 =================================
这正是我想要的
host name-alias1
User user
hostname name.subdomain1
host name-alias2
User user
hostname name.subdomain2
match host *subdomain1
CanonicalizeHostname Yes
CanonicalDomains domain.example.com
[connection rules for subdomain1 ]
match host *subdomain2
CanonicalizeHostname Yes
CanonicalDomains domain.example.com
[connection rules for subdomain2 ]