通过 ssh 模拟 telnet

通过 ssh 模拟 telnet

我有一个通过 telnet 连接工作的客户端/服务器应用程序,它不支持 SSH。基本上,客户端打开与服务器的 telnet 连接,从而启动特定的 shell,然后客户端通过 telnet 连接向该 shell 发送命令。问题是我需要通过 ssh 连接来实现这一点,而远程服务器没有 telnet 服务,因此我无法通过 ssh 连接使用隧道。我需要某种 telnet 仿真器,它可以为客户端提供 telnet 端点,同时通过 ssh 连接到服务器。有什么办法吗?

谢谢

答案1

这是通过 ssh 进行端口转发的正常情况。

服务器<ip>已打开 ssh 端点并且应用程序服务器正在监听 Telnet 端口 23。

客户端有一个应连接到的应用程序客户端<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(Telnet 客户端的 DeleGate 服务器)中,以“-ssh”和“.”为前缀的主机名(如“-ssh.host”)表示主机上有 SSH 服务器。在访问此类服务器时,Telnet-DeleGate 充当 SSH 服务器和 Telnet 客户端之间的网关。例如,使用按如下方式配置的 Telnet-DeleGate,Telnet 客户端可以按如下方式以用户身份登录到主机上的 SSH 服务器:

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

见面代表

相关内容