SSH Config 设置同域下多台主机默认用户+别名

Mik*_* S. 3 linux ssh

这个线程:在您的 ssh 配置中是否可以为同一域上的多台机器创建一个主机条目解释了我的问题的“别名”部分,我想知道是否可以设置默认用户名以及使用域别名,所以我可以简单地写一些类似的东西:

ssh subdomain

我的 /etc/resolv.conf 文件中有以下内容:

search my_cool_domain.com

以及我的 ssh_config 文件中的以下内容:

Host *.my_cool_domain.com
    User deploy
Run Code Online (Sandbox Code Playgroud)

所以我认为以下将起作用:

ssh subdomain

将尝试subdomain.my_cool_domain.com与用户连接,deploy但这由于某种原因不起作用。

虽然有以下几点:

ssh deploy@subdomain 确实有效,以及: ssh subdomain.my_cool_domain.com

知道如何以优雅的方式解决这个问题(如果可能的话)?

Evg*_*eny 5

关键字“Host”之后的模式无论如何都不会解析为真实的主机名,因此您无法检测到您的 dns 查找为其配置的子域实际上是您的主域的子域。

从 ssh_config 联机帮助页 -

         ... The host is the hostname argument given on the command line (i.e. the
         name is not converted to a canonicalized host name before match-
         ing).
Run Code Online (Sandbox Code Playgroud)

你的选择是,要么

  1. 使用“Host *”并为所有主机设置默认用户名。
  2. 当/如果您的子域有某些前缀,请使用“Host pfx1* pfx2*”。
  3. 配置您的 shell 补全并始终使用完整的主机名、“Host *.mydomain”和“ssh subdomain”,将其补全为“ssh subdomain.mydomain”。
  4. Shell 别名和函数也可用于自动添加“.mydomain”部分。例如,“ssh-alias subdomain”是“ssh subdomain.mydomain”的别名。