首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python中的Telnet会话进行telnet

从python中的Telnet会话进行telnet
EN

Stack Overflow用户
提问于 2014-03-27 01:37:57
回答 3查看 1.4K关注 0票数 2

用python可以telnet到一台服务器,然后从那里telnet到另一台服务器吗?由于有一个控制器,我使用用户名和密码远程登录到该控制器,并且在控制器命令行中,我需要以根用户身份登录才能运行linux命令。我该如何使用python做到这一点呢?

我使用telentlib登录到路由器控制器,但我需要从路由器控制器再次登录才能进入shell。这可以使用python吗?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2014-03-27 01:54:56

我刚用我手中的硬件& telnetlib检查了一下。看不到任何问题。当您连接到第一台设备时,只需使用telnet.write('cmd')发送所有必要的命令。它可能是sudo su\ntelnet 192.168.0.2\n或其他任何东西。Telnetlib只记住它自己的telnet连接,所有的辅助连接都由相应的控制器处理。

票数 1
EN

Stack Overflow用户

发布于 2014-03-27 01:50:23

您是否研究过使用expect (应该有一个python绑定);基本上,我认为您想要做的是:

从您的python脚本中,使用telnetlib连接到服务器A(传入此“username/password).

  • Within”,发送其余命令,例如“
  1. ”,并使用username/password).
  2. Within(或其他一些机制)检查您是否返回预期的“:”提示符;如果是,发送user,然后发送password,然后发送任何命令,否则将处理错误。

这应该是非常可行的,并且对于不支持更干净的API的旧版本来说是相当常见的。

票数 0
EN

Stack Overflow用户

发布于 2014-03-27 02:00:01

您可以使用write()发出sudo命令。

代码语言:javascript
复制
tn.write("sudo\n")

您还可以使用read_until()来帮助处理凭据。

代码语言:javascript
复制
tn.read_until("login: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22668907

复制
相关文章

相似问题

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