gpt4 book ai didi

python - 在 Python 的 Paramiko 中强制进行密码验证(忽略 .ssh 文件夹中的 key )

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:27 27 4
gpt4 key购买 nike

我正在尝试编写一个小的 Python 程序来检查 SSH 服务器是否允许密码身份验证。这是当前的计划:

import base64
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('ssh.example.com', username='strongbad', password='thecheat')
stdin, stdout, stderr = client.exec_command('ls')
for line in stdout:
print('... ' + line.strip('\n'))
client.close()

想法是对输出进行 grep 或稍后在 connect 语句周围放置一个 try catch block 。

但我的问题是,我运行该程序的某些系统可以通过存储在 ~/.ssh 下的 RSA key 进行访问。在这些情况下,连接只会成功(我想避免这种情况)。

所以,问题来了:有人知道有什么方法可以强制 Paramiko(或其他 SSH 客户端)使用密码吗?

谢谢

最佳答案

SSHClient.connect方法有 look_for_keys 参数。将其设置为 False:

client.connect(
'ssh.example.com', username='strongbad', password='thecheat',
look_for_keys=False)

同样,您可能还想将 allow_agent 设置为 False


强制性警告:不要使用 AutoAddPolicy,除非您不关心安全性。您正在以这种方式失去对 MITM 攻击的保护。
有关正确的解决方案,请参阅 Paramiko "Unknown Server"
.

关于python - 在 Python 的 Paramiko 中强制进行密码验证(忽略 .ssh 文件夹中的 key ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52632693/

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