Базовое туннелирование по ssh через общий ssh ​​сервер / клиент linux

1825
Oleg

Я использую свой домашний компьютер для подключения к корпоративному серверу с помощью SSH, что-то вроде:

 ssh -p 2424 user@corporatehost.com 

Затем я снова удаленно захожу на другой сервер в корпоративной сети:

 ssh internalcorporatehost 

Могу ли я установить ssh-туннель, чтобы сделать это за один шаг, или есть другие способы сделать это?

2

2 ответа на вопрос

1
Gilles

Установить user@corporatehost.comв качестве прокси:

ssh -o 'ProxyCommand ssh -p 2424 user@corporatehost.com nc %h %p' internalcorporatehost 

Лучше всего использовать псевдоним в ~/.ssh/config, так что вы можете просто набрать ssh ich:

Host ich HostName internalcorporatehost User user_name_on_internalcorporatehost ProxyCommand ssh -p 2424 user@corporatehost.com nc %h %p 

ncэто команда netcat, которая должна быть установлена ​​на компьютере шлюза. Если он недоступен, установите любую из версий, которые вам нужны (вам нужна только базовая функциональность). Возможно, вам потребуется указать полный путь к ncдвоичному файлу (например /home/oleg/bin/nc).

Если ваш ssh-клиент - Putty, этот ответ в Stack Overflow должен помочь.

1
fgysin

Очень простое решение, это просто туннельSSH команды через другую SSHкоманду, используя -tфлаг.

ssh -p 2424 -t user@corporatehost.com ssh internalcorporatehost 

Делает это очень просто, и вам не нужно больше никаких настроек.

Похожие вопросы