可以以這樣的方式設定 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 ] 

相關內容