Назад | Перейти на главную страницу

перенаправление ssh без использования перенаправления портов

Я ищу способ перенаправить ssh-соединение с одного хоста на другой. Когда пользователь создает ssh-соединение с хостом foo, я хотел бы, чтобы сервер возвращал некоторый ответ, который заставляет ssh-клиент закрывать ssh-соединение с foo и вместо этого подключаться к панели хоста.

Важно отметить, что для приложения, которое я имею в виду, нельзя просто перенаправить ssh-соединение на bar через foo, поэтому о стандартной переадресации портов не может быть и речи. Как только происходит перенаправление, клиент должен отправлять TCP-пакеты непосредственно в bar, а не в foo (и не в bar через foo).

Итак, грубо говоря, я ищу SSH-аналог перенаправления HTTP (который заставляет клиента вешать исходное соединение и вместо этого подключаться к хосту, на который оно было перенаправлено).

Для приложения, которое я имею в виду, также важно, чтобы оно не требовало настройки на стороне клиента.

Так можно ли это сделать?

В протоколе SSH нет положений для перенаправления. Читать RFC 4251, RFC 4252, и RFC 4253 для получения подробной информации о согласовании подключения.

Вы можете настроить фу SSH-сервер для работы в качестве прокси для бар SSH-сервер.

Например, с OpenSSH вы должны иметь возможность использовать ForceCommand в SSH в бар сервер:

ForceCommand ssh bar_host

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

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