1

Недавно я обнаружил, что с помощью ~/.ssh/config я могу сохранить много нажатий клавиш и автоматизировать длинные командные строки, указав множество значений по умолчанию для каждого узла. Теперь, когда я заметил, насколько мощным может быть этот инструмент, мне стало интересно, подходит ли он для другого моего варианта использования.

У меня есть доступ к двум хостам, bastion и wikispy . Бастион имеет внешний IP, wikispy виден только с внутреннего. Это означает, что обычно для подключения к wikispy мне нужно сначала подключиться по ssh к bastion а затем вызвать ssh wikispy . Очевидно, что такие вещи, как переадресация портов, будут таким образом сложными, и я бы хотел этого избежать.

Это приводит к вопросу: могу ли я как-то сделать запись ~/.ssh/config , которая скажет: «когда пользователь запрашивает хост с меткой wikispy , на самом деле подключается к bastion , а затем вызывает ssh wikispy »? Можно ли было бы работать прозрачно, чтобы я мог вызывать такие вещи, как ssh wikispy -L 9999:localhost:9999 и иметь bastion переадресацию порта таким образом, чтобы я мог получить к нему доступ изнутри wikispy?

1 ответ1

1

Похоже, что именно здесь комбинация ProxyCommand и nc оказывается полезной. Вот решение - добавьте следующее в ~/.ssh/config:

Host bastion
HostName EXTERNAL_IP
User d

Host wikispy
HostName INTERNAL_IP
User d
ProxyCommand ssh bastion nc -q0 %h 22

Согласно этой статье, вы можете получить более одного уровня вложенности таким образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .