ssh 配置通配符以避免输入用户名

spu*_*der 12 ssh configuration

我经常通过 ssh 进入 openstack 实例。所有实例都位于专用 vlan 和子网 (10.2.xx) 上。所有实例都具有相同的用户名 (bob)

我像这样连接:

ssh bob@10.2.x.x
Run Code Online (Sandbox Code Playgroud)

或有时像这样

ssh 10.2.x.x -l bob
Run Code Online (Sandbox Code Playgroud)

当我通过 ssh 进入 10.2.xx 子网上的任何虚拟机时,是否可以将我的笔记本电脑配置为自动使用名称 bob?我不想在连接到任何其他子网上的机器时自动使用 bob。

看起来ssh 配置不支持通配符。(如果我错了,请纠正我)。我想也许别名可以做到这一点,但我不确定语法是什么。

Dra*_*oan 18

ssh_config 手册页有一个部分PATTERNS详细说明了如何执行此操作,您可以使用*和 的通配符?。在我的~/.ssh/config

Host 172.16.*.*
   User drav
Run Code Online (Sandbox Code Playgroud)

然后在发布ssh -vvv 172.16.13.1

debug1: Reading configuration data /home/drav/.ssh/config
debug1: /home/drav/.ssh/config line 4: Applying options for 172.16.*.*
debug1: /home/drav/.ssh/config line 46: Applying options for *
Run Code Online (Sandbox Code Playgroud)

请注意,这些匹配项是规范的,因此如果 DNS 中的“fred.mynetwork.com”是 172.16.13.1,则发布ssh fred.mynetwork.com将与Host 172.16.*.*条目不匹配。但是,Host *.mynetwork.com当使用 DNS 名称时,您始终可以添加附加条目以应用相同的选项。