首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过SSH隧道进行python Telnet

通过SSH隧道进行python Telnet
EN

Stack Overflow用户
提问于 2018-08-05 22:02:08
回答 1查看 1.3K关注 0票数 0

我编写了一个python脚本,它将启动SSH会话,然后它将Telnet到交换机。使用pexpect、pxssh和telnetlib。

一切似乎都在工作,我可以访问一些交换机。但对于大多数人,我会得到这样的错误:

socket.error: Errno 111连接被拒绝

或者有时:

没有到主机的路由

我检查过,有一台服务器在监听默认端口,并且我的防火墙已关闭。

请注意,

  • 对交换机没有任何限制,并且我的IP已列入白名单*

另外,当我尝试在脚本(在shell中)之外使用SSH和TELNET命令时,一切都会正常工作,并且我可以访问交换机。

如果有任何反馈,我将不胜感激。

from pexpect import pxssh
import sys
import telnetlib
s = pxssh.pxssh()
hostname = ('#')
username = ('##')
password = ('###')

#LOGIN TO SSH HOST
s.login(hostname,username,password)

user=('####')
passw=('#####')
tn = telnetlib.Telnet(host)
tn.read_until("username: ")
tn.write(user+"\n")
tn.read_until("password: ")
tn.write(passw+"\n")
tn.write("terminal length 0\n")
tn.write("show interface description\n")
tn.write("exit\n")
data = tn.read_all()
print data
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-06 00:48:14

SSH本身并不是一个真正的隧道;它是一个应用层协议。Telnet也是一种应用层协议,至少需要TCP层隧道。如果您想通过SSH远程登录中的,则需要通过SSH在远程服务器上使用telnet命令。

from pexpect import pxssh

s = pxssh.pxssh()
hostname = ('#')
username = ('##')
password = ('###')
s.login(hostname,username,password)

s.sendline('telnet [your hostname]')
s.sendline('show interface description\n')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51695013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档