在调用 ssh 之前将主机名扩展为 fqdn?

Car*_*tem 5 domain-name-system ssh

我使用 .ssh/config 文件根据子域的给定部分适当地设置我的用户名,例如

Host *widgetshop.com*
   User foobar
   ControlMaster auto
   ControlPath ~/.ssh/socket-%r@%h:%p

Host *
   ControlMaster auto
   ControlPath ~/.ssh/socket-%r@%h:%p
Run Code Online (Sandbox Code Playgroud)

如果我写:

ssh foo.widgetshop.com
Run Code Online (Sandbox Code Playgroud)

但如果我要写则行不通:

ssh foo
Run Code Online (Sandbox Code Playgroud)

这在搜索路径解析时变为相同的 fqdn。

任何人都可以在调用 ssh 或其他方法之前扩展短名称?

小智 5

也许您可以使用以下host命令:

ssh $(host -t A  foo | cut -f1 -d" ")
Run Code Online (Sandbox Code Playgroud)

将其放入 shell 脚本(将“foo”替换为“$1”)并执行 ssh。


小智 5

从 OpenSSH 6.5 开始,您可以使用CanonicalizeHostnamessh_config 中的选项执行此操作。这是一个应该做你想做的例子:

CanonicalizeHostname yes
CanonicalDomains widgetshop.com

Host *.widgetshop.com
     User foobar
Run Code Online (Sandbox Code Playgroud)