我必须在多个主机上运行一堆任务,为此我正在使用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对象,但即使这样也不起作用。