У меня есть test.example.com в моих доменах поиска DNS. Когда я ssh server01
, он подключается к моему серверу, как и ожидалось. Однако он не соответствует моим правилам ssh_config, потому что он не соответствует:
Host *.test.example.com
User djimenez
ForwardAgent yes
Нет проблем, я добавлю джокер!
Host *
User djimenez
ForwardAgent yes
Однако это относится к каждому хосту. Не только короткие имена DNS (не FQDN, если хотите).
Мой вопрос, есть ли способ создать правило хоста, которое соответствует только коротким именам DNS? Или даже лучше, если бы у ssh был какой-то волшебный способ получить полное доменное имя из DNS (в случае, если у меня есть несколько поисковых доменов).
Host * !*.*
. Спасибо!ssh_config
man-страницеIf a negated entry is matched, then the Host entry is ignored, regardless of whether any other patterns on the line match
, попытка доступаhost-01.test.example.com
не будет соответствовать блоку, потому что он "исключен"!*.*
шаблоном.Страница
ssh_config
man гласит: «Хост - это аргумент имени хоста, заданный в командной строке (т. Е. Имя не преобразуется в канонизированное имя хоста перед сопоставлением)».Обходным путем будет создание сценария-обертки, который сначала расширяет имя хоста, которое вы предоставляете, до полного доменного имени, если это возможно, а затем передает его в ssh, см., Например, https://serverfault.com/questions/567272/expand-hostnames- к FQDN-до-вызывающему-SSH
источник