Python paramiko 报错 paramiko.ssh_exception.SSHException: not a valid RSA private key file
报错的原因是选择的文件不是一个有效的 RSA 密钥文件
现在通过 ssh-keygen
默认生成的密钥文件是新的格式,并非 RSA 格式。打开文件可以看到是以 -----BEGIN OPENSSH PRIVATE KEY-----
开头的,模块无法识别。
解决方法
生成时指定格式:
通过 ssh-keygen -m PEM -t rsa
命令生成 RSA 格式的密钥对
ssh-keygen 参数
-m
:参数指定密钥的格式,PEM(也就是 RSA 格式)是之前使用的旧格式
-b
:指定密钥长度
-e
:读取openssh的私钥或者公钥文件
-C
:添加注释
-f
:指定用来保存密钥的文件名
-i
:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥
-l
:显示公钥文件的指纹数据
-N
:提供一个新密语
-P
:提供(旧)密语
-q
:静默模式
-t
:指定要创建的密钥类型