Эмулировать телнет через 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