Paramiko ssh 登录验证失败

问题描述 投票:0回答:0

我正在尝试通过 ssh 登录到另一台机器,两台机器都运行 Ubuntu 并且共享和安装了相同的密钥。我可以通过 cmdline ssh 远程访问,也可以使用用户名和公钥(自动)设置使用 Remmina。 当我尝试通过 paramiko 连接时,不断收到错误消息:

paramiko.ssh_exception.AuthenticationException:身份验证失败。

我也尝试过使用“id_ed25519”而不是“id_rsa”文件,但仍然没有成功。 这是我的代码,主要是从文档中借来的。我也尝试将密码设置为 不同的选项,如密钥密码或省略此关键字,这没有帮助。

这里是代码(跳过无关):

from loguru import logger
import paramiko
import os.path

def main(host:str, user:str, password: str) -> None:
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.WarningPolicy)
    key_filename=os.path.join(os.path.expanduser('~'), ".ssh", "id_rsa")
    client.connect(hostname = host, key_filename=key_filename, password = None)
    stdin, stdout, stderr = client.exec_command('uname -s')
    logger.info(stdout.readlines())

显然,将连接线更改为:

client.connect(hostname = host, key_filename=key_filename, password = password)

它在启用密码登录的机器上运行良好,但在另一台只接受 ssh 密钥登录的机器上运行不佳。

python python-3.x paramiko
© www.soinside.com 2019 - 2024. All rights reserved.