【问题标题】:How to run telnet over ssh in python如何在 python 中通过 ssh 运行 telnet
【发布时间】:2014-11-24 13:42:01
【问题描述】:
 远程登录
服务器←————→设备
  ↑
  | SSH
  ↓
本地主机(我)

我有一台与一台服务器计算机连接的设备,我想通过 ssh 连接到服务器计算机并发送 telnet 命令到我的设备来与该设备通信。如何在 Python 中进行设置以实现这一目标?

【问题讨论】:

    标签: python ssh telnet forwarding


    【解决方案1】:

    您可以使用 Python 的 paramiko 包通过 ssh 在服务器上启动程序。然后该程序将依次接收命令(可能通过标准输入)并从控制程序返回结果(通过标准输出)。所以基本上你将使用paramiko.SSHClient 连接到服务器并运行第二个 Python 程序,该程序本身使用例如telnetlib 与设备对话。

    【讨论】:

    • 第二个 python 程序的物理位置在哪里?在服务器或我的本地主机上?
    • 基本上在服务器上,但你可以在运行前使用 paramiko 将其上传到服务器(通过 SFTP)。
    • 这正是我现在正在做的事情。但我想从本地计算机“我”向设备发送和接收 telnet 命令,并将服务器计算机作为中继 telnet 命令。
    【解决方案2】:

    通过设置SSH 会话来使用隧道,该会话通过隧道传输Telnet 流量: 所以 ssh 从 localhostserver 使用选项 -L xxx:deviceip:23 (xxx 是 localhost 上的空闲端口,device 是“device”的 IP 地址,23 是 telnet 端口)。

    然后在您的 localhost 上打开一个 telnet 会话到 localhost:xxx。 SSH 会将其通过隧道连接到设备,并将响应发送回给您。

    【讨论】:

      猜你喜欢
      • 2019-01-12
      • 2010-12-18
      • 2016-09-18
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 2017-06-24
      相关资源
      最近更新 更多