我将通过python脚本测试是否已设置无密码ssh登录。 如果我运行正常的ssh命令,那么它将等待一段时间接受密码。 有没有一种方法,只要ssh要求输入密码,ssh命令就应该返回一个错误。检查是否已设置无密码访问
有没有可能做到这一点?
我将通过python脚本测试是否已设置无密码ssh登录。 如果我运行正常的ssh命令,那么它将等待一段时间接受密码。 有没有一种方法,只要ssh要求输入密码,ssh命令就应该返回一个错误。检查是否已设置无密码访问
有没有可能做到这一点?
ssh命令接受相当大的一组选项,所以假设你的Python代码调用shell命令执行以下操作:
ssh -oNumberOfPasswordPrompts=0 <host> "echo hello"
这将立即失败,如果该键尚未建立,瞬间如果他们有,则完成,这是命令传递给主机的原因。这给你一个简单的测试。
如果您未将密码传递给SSHClient
的.connect()
方法并找不到工作密钥,则paramiko将提高AuthenticationException
。
我猜'-oBatchMode = yes'也有效。我不知道BatchMode是否也会跳过其他人为干预。 – isaaclw 2012-08-13 14:49:22