ssh config通配符,避免键入用户名


12

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

我这样连接:

ssh bob@10.2.x.x

或有时像这样

ssh 10.2.x.x -l bob

在ssh进入10.2.xx子网中的任何vm时,是否可以将笔记本电脑配置为自动使用bob名称?我不希望在任何其他子网的计算机中使用时自动使用bob。

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

Answers:


18

ssh_config手册页上有一个部分PATTERNS,详细说明了如何使用and 可以使用通配符。在我的:*?~/.ssh/config

Host 172.16.*.*
   User drav

然后在发行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 *

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


是的,条目Host 10.2*将达到目的
Bananguin

我发现10.2。*。*导致我的钥匙被拒绝。更改为10.2。*导致连接成功。
spuder

1
奇怪,对我来说xx *。*有用:/如果人们发现问题,至少有您的评论!
Drav Sloan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.