通过客户端/服务器之间的现有ssh连接从服务器telnet到设备

时间:2012-04-20 16:56:06

标签: python ssh telnet paramiko

这是问题所在。我正在使用我的脚本通过telnet连接直接连接到设备(从我的Windows桌面< =(telnet)=> 到设备)。基本上,我的脚本在TL1中运行一些命令,捕获输出并根据参数值继续...非常简单。

此设备将安装在另一个网络上,我无法通过telnet直接联系到该网络。现在,我必须在特定服务器上启动ssh连接,然后从那里启动telnet会话。 (从我的Windows桌面&lt; =(ssh)=&gt; 服务器&lt; =(telnet)=&gt; 到设备)< / p>

我理解paramiko的基础...我在jessenoler网站上找到了代码:

import paramiko
ssh.connect('127.0.0.1', username='jesse', password='lol')
stdin, stdout, stderr = ssh.exec_command("uptime")
type(stdin)
stdout.readlines()
# output:
# ['13:35  up 11 days,  3:13, 4 users, load averages: 0.14 0.18 0.16\n']

我无法弄清楚如何从服务器发起telnet ...我应该使用:

ssh.exec_command("telnet 10.10.10.10 10001")

我知道解决我的问题最简单的方法是在服务器上安装python,但我不能。以前有人遇到过那种问题吗?感谢您的投入! :)

1 个答案:

答案 0 :(得分:2)

您应该设置SSH隧道而不是打开正常连接。这可以通过-L localport:server:remoteport的客户端命令行完成,也可以使用paramiko从python完成。

请查看this answerlinked gist,详细了解如何使用Python。

当你设置它时,你应该将telnet连接到指定为localport的端口上的localhost