подстановочные знаки конфигурации ssh, чтобы избежать ввода имени пользователя

12

Я часто использую ssh в openstack. Все экземпляры находятся в выделенном vlan и подсети (10.2.xx). Все экземпляры имеют одинаковое имя пользователя (боб)

Я подключаюсь так:

ssh bob@10.2.x.x

или иногда так

ssh 10.2.x.x -l bob

Можно ли настроить мой ноутбук так, чтобы он автоматически использовал имя bob при входе в ssh в любой виртуальный компьютер в подсети 10.2.xx? Я не хочу автоматически использовать bob при подключении к машине в любой другой подсети.

Похоже, ssh config не поддерживает подстановочные знаки. (Поправьте меня если я не прав). Я думаю, что псевдоним мог бы сделать это, но я не уверен, какой будет синтаксис.

spuder
источник

Ответы:

18

Страница man ssh_config содержит раздел, в PATTERNSкотором подробно описано, как вы можете это сделать, вы можете использовать подстановочные знаки *и ?. По моему ~/.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 *

Обратите внимание, что эти совпадения являются каноническими, поэтому, если «fred.mynetwork.com» в DNS - 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 *. *: / По крайней мере, есть ваш комментарий, если люди найдут проблемы!
Драв Слоан