我可以在 .ssh/config 中为各个主机添加别名,如下所示:
Host nickname
Hostname host1.example.com
但有时我想为整个域指定别名,以便节省在该域上的计算机的命令行上的输入:
Host *.nick
Hostname %h.really.long.domain.example.com
当然,这并不像写的那样有效。有什么东西可以吗?
评论已建议这个问题作为重复项,但该解决方案不适用于此用例;它要求在配置文件中明确列出所有主机。我正在寻找一种全局方法;我想告诉 SSH '重写任何形式的主机host???.short
为host???.really.long.example.com
.'
把它想象成相当于sed s/.short/.really.long.etc/
答案1
无法以这种方式执行替换,但可以CanonicalDomains
在尝试检查域是否存在之前将域附加到主机名。
CanonicalDomains really.long.domain.example.com
CanonicalizeHostname yes
Host *.really.long.domain.example.com
AdditionalDirectives