На работе мне часто приходится заходить на хосты, которые следуют общей схеме именования, например qc01
- qc12
, hc01
- hc10
и так далее. Все они должны получить одинаковые значения конфигурации на моем ноутбуке .ssh/config
. Конечно, я мог бы использовать записи для хостов qc*
и hc*
, но мне интересно, если вместо этого как-то можно использовать регулярные выражения?
ssh
regular-expression
андреас-ч
источник
источник
man ssh_config
.Вы можете использовать полные регулярные выражения в вашем
ssh_config
.Соответствующая документация IMO очень сложна для чтения и понимания. Я понимаю это только потому, что у меня 13+ лет опыта работы в Linux и 8+ лет использования
ssh
. Итак, вот мое резюме документации:man ssh_config
описывает функцию под названиемMatch
exec
которая позволяет использовать произвольную команду оболочки для определения соответствияTOKENS
В моем случае я использовал
~/.ssh/config
:Тестирование должно быть сделано с чем-то хитрым, как это. И чтобы сделать это тестирование вы звоните
ssh -vvv HOSTNAME
. Который точно покажет, что происходит, и правильно лиMatch
реализовано ваше новое .источник
Расширяя ответ от Тревора:
Также возможны более сложные хосты, такие как сопоставление
foo123.123
иfoo10.10
в одном правиле БЕЗ DNS-записей для используемых имен хостов:Использование ProxyCommand для управления содержимым% h с помощью оболочки и подключения к правому порту через netcat. Таким образом, вы можете создавать пресеты для категории хостов, не создавая отдельных записей.
источник