我有一个通过 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
见面代表