如何绕过paramiko的键盘认证

2 投票
2 回答
887 浏览
提问于 2025-04-17 02:03

我正在尝试使用Paramiko通过ssh连接到一个远程主机,但我收到了一个错误信息,提示需要键盘认证才能访问这个主机。请问有没有办法用Paramiko绕过这个问题?如果不行,有没有其他的ssh模块可以使用?如果需要的话,我甚至可以换个语言来做。唯一不能做的就是更改主机上的设置。另外,我是在Windows主机上写这个应用,所以pxssh不适合我。有什么建议吗?

2 个回答

-1

你可以直接用 pkey= 来传入私钥,或者在调用 connect() 时,用 key_filename= 来传入文件名,像这样:

client = SSHClient()
client.connect('remotehost', key_filename='/path/to/private_key')

或者

private_key = """
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIMhTkzF8pZ5gtXvAafjNRsKXWXnhjslUW194WteddA3YoAoGCCqGSM49
AwEHoUQDQgAEkb0qngPKOKVcjqszHg+7Y95TLvWZb5qtHb4ZmuLJRYIMzx78C9gp
sb3jBuW2VCaoO8SfyXUKeOzT7eJTH6j8GQ==
-----END EC PRIVATE KEY-----
""""
client = SSHClient()
client.connect('remotehost', pkey=private_key)
-1

你可以从你拥有的任何资源中获取用户名和密码,然后在调用 connect 时使用它们。比如,你可以把它们保存在一个配置文件里。

撰写回答