Рейтинг:0

Как отредактировать середину имени хоста (%h) в конфигурации ssh?

флаг br

В конфигурации ssh вы можете легко редактировать имя хоста, добавляя или добавляя к нему что-то. Например, когда вы хотите подключиться к серверу с помощью SSH-тест5, но на самом деле имя сервера test5.mail, вы можете указать сервер следующим образом:

Сопоставить exec "echo %h | grep -q '^test[0-9]$'"
    Имя хоста %h.mail

Тот же подход можно применить, если вам нужно добавить имя хоста.

Но что, если я хочу отредактировать середину имени хоста? Например, я хочу подключиться как ssh server1.storage, но фактический адрес, к которому я хочу подключиться, — server1.int.storage.

Другими словами, я хочу вставить подстроку в середине %h.

Рейтинг:0
флаг br

Для меня работало следующее:

Совпадение с exec "echo %h | grep -q '^server[0-9]*.storage$'"
    ProxyCommand ssh $(echo %h | sed 's/storage/int.storage/') nc $(echo %h | sed 's/storage/int.storage/') %p

Я нашел пример команды прокси в этом вопрос. Но я не совсем понимаю, зачем вам та часть с nc и %p. Там вы дважды указываете команду редактирования. Я хотел бы просто указать это один раз, например:

ProxyCommand ssh $(echo %h | sed 's/storage/int.storage/')

Но это не работает.

Из того же вопроса, указанного выше, я вижу, что вы также можете указать сценарий обработчика. Но вроде команду опять надо указывать с двукратной правкой. Так что я бы предпочел хранить все в одном месте — в самом конфиге ssh.

Буду признателен за объяснение и другие варианты решений, если таковые имеются.

Рейтинг:0
флаг ke

вы можете просто указать бит nc в proxycommand без повторения ssh

Совпадение с exec "echo %h | grep -q '^server[0-9]*.storage$'"
    ProxyCommand nc $(echo %h | sed 's/storage/int.storage/') %p

в моем случае я использовал его для имен aws ec2, не разрешаемых DNS

Совпадение с exec "echo %n | grep -qE '^ip-.*\.compute\.internal$'"
ProxyCommand nc $(echo %n | cut -d. -f1 | cut -d- -f2- | tr - .) %p

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.