可以这样设置 ssh 配置,将与 host.alias 的连接解析为“host.subdomain”

可以这样设置 ssh 配置,将与 host.alias 的连接解析为“host.subdomain”

我以不同的子域的形式连接到一系列服务器,这些服务器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 ] 

相关内容