Paramiko:“不是有效的RSA私钥文件”

2024-03-28 09:59:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用以下spinet连接到服务器

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ip = ['x.x.x.x']
key_file = "/Users/user/.ssh/id_rsa"

key = paramiko.RSAKey.from_private_key_file(key_file)
ssh.load_system_host_keys()
ssh.connect(ips, port=22, username='XYZ', pkey=key, timeout=11)

但我得到一个错误:

not a valid RSA private key file


Tags: keyip服务器hostparamikopolicyprivateusers
2条回答

我也遇到了类似的情况,ssh-keygen来帮助我。您应该复制id_rsa并使用ssh keygen将其转换为rsa类型。在

“BEGIN OPENSSH PRIVATE KEY”转换为“BEGIN RSA PRIVATE KEY”

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

paramiko.RSAKey.from_private_key_file方法要求私钥文件为“PEM”格式。检查您要读取的文件,看看它是否以一行开头:

  -BEGIN RSA PRIVATE KEY  -

如果没有那条线那就不是PEM了。在

如果不是PEM,那么您必须找到一些方法来创建私钥的PEM版本。(编辑:原始海报使用PuTTY的puttygen实用程序将私钥导出到PEM格式的文件中。)

请确保新文件与原始id_rsa文件具有相同的所有权和有限的访问权限,以便没有人可以通过读取该文件来窃取密钥。然后,显然,修改paramiko调用以从新的PEM格式文件中读取密钥。在

相关问题 更多 >