Удобно ли использовать SSH для внутренних хостов?

Удобно ли использовать SSH для внутренних хостов?

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

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

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

решение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

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

Связанный контент