# 问题描述
因涉猎到自动化运维方面,故采用Python的 paramiko 模块实现服务器之间的管理及命令调用等。实现过程中出现密钥文件无效的报错。
# 问题分析
查询结果得知:
现在通过 ssh-keygen 默认生成的私钥文件(id_rsa)是新的格式。打开文件可以看到是以 -----BEGIN OPENSSH PRIVATE KEY----- 开头的,故模块无法识别。
# 问题解决
生成时指定格式:按以下命令生成 RSA 格式的密钥对即可
ssh-keygen -m PEM -t rsa
# ssh-keygen参数
-m:参数指定密钥的格式,PEM(也就是 RSA 格式)是之前使用的旧格式 -b:指定密钥长度 -e:读取openssh的私钥或者公钥文件 -C:添加注释 -f:指定用来保存密钥的文件名 -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥 -l:显示公钥文件的指纹数据 -N:提供一个新密语 -P:提供(旧)密语 -q:静默模式 -t:指定要创建的密钥类型