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
:指定要创建的密钥类型
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步