Ssh

通過 ssh 模擬 telnet

  • May 21, 2019

我有一個通過 telnet 連接工作的客戶端/伺服器應用程序,它不支持 SSH。基本上,客戶端打開與伺服器的 telnet 連接,伺服器啟動特定的 shell,客戶端通過 telnet 連接向該 shell 發送命令。問題是我需要通過 ssh 連接來完成這項工作,而遠端伺服器沒有 telnet 服務,所以我不能在 ssh 連接上使用隧道。我需要某種 telnet 模擬器,它可以為客戶端提供 telnet 端點,同時通過 ssh 連接到伺服器。有沒有辦法做到這一點?

謝謝

這是通過 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 從伺服器的 localhost 轉發到客戶端(您的應用程序伺服器應該偵聽所有 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

認識**代表門**

引用自:https://serverfault.com/questions/967949