Эмулировать телнет через SSH

У меня есть клиент-серверное приложение, которое работает через соединение telnet, и оно не поддерживает SSH. По сути, клиент открывает подключение telnet к серверу, который запускает определенную оболочку, и клиент отправляет команды через подключение telnet к этой оболочке. Проблема в том, что мне нужно, чтобы это работало через ssh-соединение, а на удаленном сервере нет служб telnet, поэтому я не могу использовать туннель через ssh-соединение. Мне нужен какой-то эмулятор telnet, который будет предлагать клиенту конечную точку telnet при подключении через ssh к серверу. Есть какой-либо способ сделать это?

Спасибо

1 ответ

Это нормальный случай для переадресации портов через ssh.

Сервер <ip> Открыта ли конечная точка ssh и сервер приложений прослушивает порт 23 Telnet.

У клиента есть клиент приложения, который должен подключиться к <ip>:23, Также клиент ничего не слушает на порту 23.

Давайте установим переадресацию портов с сервера на клиент:

ssh -N -L 23:127.0.0.1:23 user@<ip> >/dev/null 2>&1 & 

Мы тут:

  • подключиться к серверу <ip> как пользователь user;
  • поместить сессию SSH в фоновый режим;
  • перенаправить вывод ssh-сессии в /dev/null, чтобы избежать каких-либо сообщений на консоли;
  • перенаправить порт 23 с локального хоста сервера на клиент (ваш сервер приложений должен прослушивать все IP-интерфейсы, включая 127.0.0.1)

Теперь клиент приложения должен подключиться к адресу 127.0.0.1:23 работать с сервером приложений.

Обновить

Согласно объяснениям, у нас есть клиентское программное обеспечение, поддерживающее только telnet, и сервер, поддерживающий только ssh. И клиент должен иметь возможность доступа к серверу.

Как это бывает, такое решение существует. Из руководства:

SSH / Telnet шлюз

В Telnet-DeleGate (сервер DeleGate для клиентов Telnet), имя хоста с префиксом "-ssh" и "." (как "-ssh.host") подразумевает SSH-сервер на хосте. При доступе к такому серверу Telnet-DeleGate работает как шлюз между сервером SSH и клиентом Telnet. Например, используя Telnet-DeleGate, настроенный следующим образом, клиенты Telnet могут войти на сервер SSH на хосте как пользователь следующим образом:

% delegated -P8023 SERVER=telnet://-ssh
% telnet -l user@host localhost 8023

Познакомьтесь с DeleGate

Другие вопросы по тегам