【问题标题】:Using Python Exscript to connect to an AIX box使用 Python Exscript 连接到 AIX 机器
【发布时间】:2015-11-25 14:52:27
【问题描述】:

这是我正在使用的代码。由于某些原因它不起作用,我错过了什么?不确定我还能在帖子中添加什么,但网站要求我添加更多详细信息

account = Account(name= 'MiniMe', password = 'password')
conn = SSH2()
conn.debug=5

try:
    print "Attempting a connection to 1.1.1.1"
    conn.connect('1.1.1.1')
    print (conn.response)
except:
    e = sys.exc_info()[0]
    print "Error connecting to host:", e
    conn="N/A"


try:
    print "Authenticating to 1.1.1.1"
    conn.login(account)
    print (conn.response)
except:
    e = sys.exc_info()[0]
    print e

conn.execute('ls -la')
print (conn.response)

输出如下所示

Attempting a connection to  1.1.1.1.
generic: Rejecting ssh-rsa host key for 1.1.1.1: 3432432j4k32j4k32j42j34kj432
generic: Attempting to authenticate MiniMe
generic: Authenticating with _paramiko_auth_password
None
Authenticating to  1.1.1.1
generic: Attempting to app-authenticate MiniMe.
generic: waiting for: ['[\\r\\n][^\\r\\n]*(?:bad secrets|denied|invalid|too short|incorrect|connection timed out|failed|failure)', 'login as:', '(?:s\\/key|otp-md4) (\\d+) (\\S+)', 'password:? *$', '[\\r\\n](?:[^0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~\\ \\\t\\\n\\\r\\\x0b\\\x0c]*|[\\x1b\\x07\\x00]*)[\\[\\<]?\\w+(?:(?:(?:[\\w+\\-]+)\\@)?(?:[\\w+\\-\\.]+))?:?(?:(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)|~(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)?)?[: ]?(?:(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)|~(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)?)?(?:\\((?:[\\w\\+\\-\\._]+)\\))?[\\]\\-]?[#>%\\$\\]] ?[^0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~\\ \\\t\\\n\\\r\\\x0b\\\x0c]*\\Z']
generic: Expecting a prompt
generic: Expected pattern: <generator object <genexpr> at 0x000000000349C990>
aix: Protocol: driver replaced: generic -> aix
aix: Protocol.app_authenticate(): driver replaced
aix: waiting for: ['[\\r\\n][^\\r\\n]*(?:bad secrets|denied|invalid|too short|incorrect|connection timed out|failed|failure)', 'login as:', '(?:s\\/key|otp-md4) (\\d+) (\\S+)', "[\\r\\n]\\w+\\'s Password: $", '[\\r\\n](?:[^0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~\\ \\\t\\\n\\\r\\\x0b\\\x0c]*|[\\x1b\\x07\\x00]*)[\\[\\<]?\\w+(?:(?:(?:[\\w+\\-]+)\\@)?(?:[\\w+\\-\\.]+))?:?(?:(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)|~(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)?)?[: ]?(?:(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)|~(?:(?:(?:[\\w\\+\\-\\._]+))?(?:/(?:[\\w\\+\\-\\._]+))*/?)?)?(?:\\((?:[\\w\\+\\-\\._]+)\\))?[\\]\\-]?[#>%\\$\\]] ?[^0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~\\ \\\t\\\n\\\r\\\x0b\\\x0c]*\\Z']
aix: Expecting a prompt
aix: Expected pattern: <generator object <genexpr> at 0x000000000349C9D8>
aix: Sending 'ls -la\r'
<class 'Exscript.protocols.Exception.TimeoutException'>
aix: Expecting a prompt
aix: Expected pattern: <generator object <genexpr> at 0x000000000349CAB0>

【问题讨论】:

  • 您是否尝试过通过 ssh 从您使用此脚本的同一台机器连接到主机?如果你尝试增加超时时间 (.set_timeout(60)) 会怎样
  • 我做到了,它正在工作。这肯定不是超时问题,主机是有响应的。由于某些原因,Exscript 没有得到它正在等待的响应。如您所见,Exscript 将提示从通用更改为 AIX,这意味着它正在与 ssh 服务器交换数据包
  • 你看过这个stackoverflow.com/questions/34042841/python-exscript-junos 了吗?似乎 AIX 正在等待某种输入。
  • 你能执行“ls -la\n”吗?
  • 不...我需要一种方法来确定是否进行了第一次身份验证。第二步(App身份验证不应该发生......)

标签: python


【解决方案1】:

以下是输出中的关键行:

Attempting a connection to  1.1.1.1.
# ... (messages from AIX)
None
# ... (messages from AIX)
Authenticating to  1.1.1.1
# ... (messages from AIX)
<class 'Exscript.protocols.Exception.TimeoutException'>
# ... (messages from AIX)

这些是来自两个 try/except 语句的打印消息。 这是最重要的一行:

print (conn.response)
#=> None

...在尝试连接后发生。

连接不工作。连接收到一个空白响应,即None,然后将其打印出来。这也解释了TimeoutException 的下方。 Timeout 本质上的意思是“我要求上网,但收到了沉默”。 (这个程序的编写方式,即使初始连接失败,它也会尝试进行身份验证。别担心,它很容易修复。)

可能是 IP 地址输入错误?或者,尝试在 URL 前添加 http://

【讨论】:

  • 这是ssh ..你在上面说什么?
猜你喜欢
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
  • 2021-01-07
  • 2012-09-14
  • 2020-09-13
  • 2019-12-25
  • 2022-07-19
  • 1970-01-01
相关资源
最近更新 更多