gpt4 book ai didi

python - 如何在python中检查ssh是否询问密码?

转载 作者:行者123 更新时间:2023-11-30 23:40:55 25 4
gpt4 key购买 nike

有一种方法可以使用 ssh-keygen 连接远程计算机而无需密码。(有关详细信息,请参阅 this )

在我的问题中,有两台计算机(假设计算机A和B)并且计算机A可以在没有ssh密码的情况下连接计算机B。当计算机B的IP地址更改时(但我不知道新的IP是否真的属于它。),我正在编辑known_host文件,用新的IP替换旧的IP。如果新的ip确实属于B电脑,A电脑无需密码就可以继续连接,所以没有问题。但如果新的 IP 不属于计算机 B,则 ssh 会要求输入密码才能连接计算机 B。

由于上述所有过程都是由 python 代码执行的,因此 SSH 正在等待密码,如果我尝试连接计算机 B,我的程序就会停止运行。我想做的是检查 ssh 是否在不输入密码的情况下询问密码。

是否有任何 ssh 选项或任何其他方法可以做到这一点?

最佳答案

您可以使用 python pexpect 来执行此操作模块。

示例:

import pexpect

ssh_new_key = "Are you sure you want to continue connecting"

cmd_connect = "ssh -p22 %s@%s" % (account_name, host)

try:

p = pexpect.spawn(cmd_connect)

i = p.expect([ssh_new_key, 'asswor'])

if i == 0:
p.send('yes\r')
i = p.expect([ssh_newkey, 'assword:'])

if i == 1:
p.send(account_pwd)

except Exception, exp:
print = "Could not connect to %s with account %s" % (host, account_name)

关于python - 如何在python中检查ssh是否询问密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12348442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com