如何处理使用和不使用密码的pxssh ssh登录

时间:2018-12-14 11:52:31

标签: python

我必须在多个主机上运行一堆任务,为此我正在使用pxssh。问题在于某些主机具有基于密码的身份验证,而很少有主机具有基于密钥的身份验证。

我想以一种适用于这种情况的方式编写代码,以下是我尝试执行的操作,但不起作用。

  ssh = pxssh()
  try:
      ssh.login(h, getuser())
  except ExceptionPxssh as e:
      # print(e)
      ssh.login(h, getuser(), pwd)
  finally:
      ssh.sendline("chmod 700 ~/")
      ssh.prompt()
      ssh.sendline("chmod 700 ~/.ssh/")
      ssh.prompt()
      ssh.sendline("chmod 600 ~/.ssh/authorized_keys")
      ssh.prompt()
      ssh.sendline(">~/.ssh/authorized_keys")
      ssh.prompt()
      ssh.logout()
      ssh.close()

运行此命令时,在OSError: [Errno 9] Bad file descriptor行出现错误ssh.sendline("chmod 700 ~/")

看起来ssh对象超出范围,我尝试通过在`except子句中也创建一个新的ssh对象,但即使这样也不起作用。

0 个答案:

没有答案