如何在 .ssh/config 中为域设置别名?

And*_*rew 2 ssh

我可以在 .ssh/config 中为单个主机设置别名,如下所示:

Host nickname
    Hostname host1.example.com
Run Code Online (Sandbox Code Playgroud)

但有时我想为整个域设置别名,以便为该域上的机器节省在命令行上的输入:

Host *.nick
    Hostname %h.really.long.domain.example.com
Run Code Online (Sandbox Code Playgroud)

当然,这不像写的那样工作。有什么会吗?


评论建议此问题重复,但该解决方案不适用于此用例;它要求在配置文件中明确列出所有主机。我正在寻找一种全局方法;我想告诉 SSH '将表单的任何主机重写host???.shorthost???.really.long.example.com.'

把它想象成相当于 sed s/.short/.really.long.etc/

Ign*_*ams 5

没有办法以这种方式执行替换,但是CanonicalDomains在尝试检查它们是否存在之前,可以使用将域附加到主机名。

CanonicalDomains really.long.domain.example.com
CanonicalizeHostname yes

Host *.really.long.domain.example.com
    AdditionalDirectives
Run Code Online (Sandbox Code Playgroud)

  • 有点令人失望的是它不能按预期完成,但是哦,否定的答案仍然是答案。 (2认同)