从python中的telnet会话telnet

时间:2014-03-26 17:37:57

标签: python telnet

是否有可能telnet到服务器并从那里telnet到python中的另一台服务器? 由于我使用用户名和密码telnet到控制器,并且从控制器命令行我需要以root身份登录以运行linux命令。我怎么用python做到这一点?

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

谢谢!

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  1. 从您的python脚本中,使用telnetlib连接到服务器A(传入用户名/密码)。
  2. 在此“套接字”中,发送其余命令,例如“telnet serverB”并使用expect(或其他一些机制)检查您是否返回了预期的“User:”提示符;如果是这样,发送用户,然后密码,然后发送任何命令,否则处理错误。
  3. 这应该是非常可行的,并且对于不支持更清晰API的旧东西来说相当普遍。

答案 2 :(得分:0)

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

tn.write("sudo\n")

您还可以使用read_until()来帮助提供凭据。

tn.read_until("login: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")