【发布时间】:2014-11-24 13:42:01
【问题描述】:
远程登录 服务器←————→设备 ↑ | SSH ↓ 本地主机(我)
我有一台与一台服务器计算机连接的设备,我想通过 ssh 连接到服务器计算机并发送 telnet 命令到我的设备来与该设备通信。如何在 Python 中进行设置以实现这一目标?
【问题讨论】:
标签: python ssh telnet forwarding
远程登录 服务器←————→设备 ↑ | SSH ↓ 本地主机(我)
我有一台与一台服务器计算机连接的设备,我想通过 ssh 连接到服务器计算机并发送 telnet 命令到我的设备来与该设备通信。如何在 Python 中进行设置以实现这一目标?
【问题讨论】:
标签: python ssh telnet forwarding
您可以使用 Python 的 paramiko 包通过 ssh 在服务器上启动程序。然后该程序将依次接收命令(可能通过标准输入)并从控制程序返回结果(通过标准输出)。所以基本上你将使用paramiko.SSHClient 连接到服务器并运行第二个 Python 程序,该程序本身使用例如telnetlib 与设备对话。
【讨论】:
通过设置SSH 会话来使用隧道,该会话通过隧道传输Telnet 流量:
所以 ssh 从 localhost 到 server 使用选项 -L xxx:deviceip:23
(xxx 是 localhost 上的空闲端口,device 是“device”的 IP 地址,23 是 telnet 端口)。
然后在您的 localhost 上打开一个 telnet 会话到 localhost:xxx。 SSH 会将其通过隧道连接到设备,并将响应发送回给您。
【讨论】: