【问题标题】:Verifying Authentication to a Telnet Session in Python在 Python 中验证 Telnet 会话的身份验证
【发布时间】:2011-06-01 18:19:13
【问题描述】:

我正在尝试远程登录到 Cisco 交换机并在其上运行几个命令。我可以检查主机是否不存在,不知道如何检查用户名或密码是否正确。这是我到目前为止得到的(这是我课程的一部分)

def login(self):
    if self.user_name and self.password: 
        try:
            self.connection=telnetlib.Telnet(self.telnet_host)
            try:
                self.connection.read_until('sername:',1)
                self.connection.write(self.user_name+'\r\n')
                self.connection.read_until('assword:',1)
                self.connection.write(self.password+'\r\n')
                self.connection.read_until(self.prompt,1)
                print "Connected"
                self.loggedON=True
            except EOFError:
                print "Authentication to "+ self.telnet_host+" failed.\n"
                return
        except: 
            print "Can't connect to "+self.telnet_host+"\n"
            return
    else:
        if not self.user_name:
            self.user_name=raw_input("Username: ")
            self.login()
        else:
            self.password=raw_input("Password: ")
            self.login()

即使密码或用户名错误,它仍然会说它已连接。

【问题讨论】:

  • Telnet...纯文本认证...'nuff说。
  • 我不知道您要做什么,但是您是否研究过 SNMP?使用 SNMP 很有可能是更好的解决方案。
  • 回答您的问题:您必须阅读发送密码后得到的信息,并将其与登录时收到的消息进行比较。我不知道read_until是否有超时但如果不是,您的程序将永远等待或直到交换机终止连接。

标签: python authentication telnet verification cisco


【解决方案1】:

你也可以试试Exscript:

from Exscript.util.start import quickstart

def do_something(conn):
    conn.autoinit()
    conn.execute('show version')

quickstart('telnet://localhost', do_something)

quickstart() 函数要求用户输入用户名和密码(如果这不是您想要的,请使用 start())。登录失败(和其他错误)会自动处理。您可能还想查看Exscript.util.start

【讨论】:

    【解决方案2】:

    首先,您不应该有这样的笼统的 try/except 块。更严格地捕获异常。此外,正如其他人所评论的,您可能会考虑使用 SNMP。

    话虽如此,如果你继续使用 Telnet,你还不如重用别人的代码。例如,我通过简单的 Google 搜索找到了this

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2016-04-24
      • 1970-01-01
      • 2017-06-16
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      相关资源
      最近更新 更多