Python的 - Pxssh - 开始尝试登录到远程服务器时的密码错误拒绝(Python -

2019-08-19 15:33发布

我试图使用Pexpect的模块pxssh登录到我的我的服务器之一。 我得到的密码拒绝。 我想我知道它是什么的问题,但无法弄清楚如何解决它。 问题是,有,当我登录到服务器欢迎横幅(更换旗帜,是不是一种选择)和Pexpect的得到迷惑。 这里是我的代码:

import pxssh

ssh = pxssh.pxssh()
ssh.login('192.168.1.10', 'username', 'password')

我期待一个“密码:”,但pxssh期待original_prompt =“[#$]”那些是符号和旗帜是情侣“”

任何帮助,我会很高兴。 谢谢

Answer 1:

此错误来抓SSH是lock.so打开终端并执行命令

xxxx@toad:~$ rm .ssh/known_hosts

删除的known_hosts

另一个选项是在Windows登录,就意味着检查命令提示符。 如果您尝试在Windows登录装置Pexpect的使用

child = pexpect.spawn('ssh tiger@172.16.0.190 -p 8888')
child.logfile = open("/tmp/mylog", "w")
print child.before
child.expect('.*Are you sure you want to continue connecting (yes/no)?')
child.sendline("yes")

child.expect(".*assword:")
child.sendline("tiger\r")
child.expect('Press any key to continue...')
child.send('\r')
child.expect('C:\Users\.*>')
child.sendline('dir')
child.prompt('C:\Users\.*>')

pxssh使用壳提示输出来自远程主机同步。

为了使这更强大的它设置shell提示符的东西不仅仅是$#或更独特。 这应该对大多数树脂/ bash或Csh的风格弹工作。 请参阅 http://www.pythonforbeginners.com/code-snippets-source-code/ssh-connection-with-python/



Answer 2:

我不知道你就在您的诊断,我不认为横幅可能会导致,但一个错误的提示可以肯定地做到这一点。 看代码是肯定的。 http://www.opensource.apple.com/source/lldb/lldb-69/test/pexpect-2.4/pxssh.py

特别是部分:

 elif i==2: # password prompt again
            # For incorrect passwords, some ssh servers will
            # ask for the password again, others return 'denied' right away.
            # If we get the password prompt again then this means
            # we didn't get the password right the first time. 
            self.close()
            raise ExceptionPxssh ('password refused')

免责声明:这不是我的代码,但Pxssh代码。 为什么不使用的paramiko( http://www.lag.net/paramiko/ )或直接Pexpect的



文章来源: Python - Pxssh - Getting an password refused error when trying to login to a remote server