Paramiko 是否支持基于证书的身份验证

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

Paramiko 支持基于证书的身份验证吗?

key_filename
方法中的
connect
提到它同时支持私钥和证书,这里的证书是指基于证书的身份验证吗?

key_filename (str) – 文件名或文件名列表 用于尝试身份验证的可选私钥和/或证书

connect(hostname, port=22, username=None, password=None, pkey=None, 
    key_filename=None, timeout=None, allow_agent=True, 
    look_for_keys=True, compress=False, sock=None, gss_auth=False, 
    gss_kex=False, gss_deleg_creds=True, gss_host=None, 
    banner_timeout=None, auth_timeout=None, gss_trust_dns=True, 
    passphrase=None, disabled_algorithms=None)
python ssh paramiko public-key openssh
2个回答
2
投票

Paramiko 支持支持证书的专有 OpenSSH 公钥算法。

SSHClient.connect

方法
的文档对此更加清晰(比key_filename
参数本身的文档):

key_filename

 可能包含 
OpenSSH 公共证书路径 以及常规私钥路径;


0
投票
上面的答案解决了问题,您将证书存储在设备上,并且您有证书文件的路径。

我所处的情况是,我以字符串形式获取证书,并将该字符串存储到文件中,而不是作为参数传递路径。

我是这样解决问题的:

private_key = paramiko.ECDSAKey.from_private_key(key_string, password=password) sshclient = paramiko.SSHClient() sshclient.set_missing_host_key_policy(paramiko.AutoAddPolicy()) private_key.load_certificate(certificate_string) sshclient.connect(hostname=host, username=user, pkey=private_key)
当密钥和证书在字符串中时,希望它能帮助解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.