我正在尝试使用以下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
我也遇到了类似的情况,ssh-keygen来帮助我。您应该复制id_rsa并使用ssh keygen将其转换为rsa类型。在
将“BEGIN OPENSSH PRIVATE KEY”转换为“BEGIN RSA PRIVATE KEY”
paramiko.RSAKey.from_private_key_file
方法要求私钥文件为“PEM”格式。检查您要读取的文件,看看它是否以一行开头:如果没有那条线那就不是PEM了。在
如果不是PEM,那么您必须找到一些方法来创建私钥的PEM版本。(编辑:原始海报使用PuTTY的
puttygen
实用程序将私钥导出到PEM格式的文件中。)请确保新文件与原始
id_rsa
文件具有相同的所有权和有限的访问权限,以便没有人可以通过读取该文件来窃取密钥。然后,显然,修改paramiko
调用以从新的PEM格式文件中读取密钥。在相关问题 更多 >
编程相关推荐