OpenSSH 格式的密钥转换为 PEM 格式
发布于 2022-06-29
MySQL 客户端软件一直使用的 DBeaver
, 使用 SSH
隧道连接数据库的时候报错 Specified private key cannot be converted
.
出现这个错误是由于 SSH
私钥的格式造成的。
默认情况下 ssh-keygen
创建的密钥使用的是 OpenSSH
格式。
密钥的文件头是:
-----BEGIN OPENSSH PRIVATE KEY-----
但 DBeaver
使用的是旧的 PEM
格式的密钥,密钥的文件头应该是:
-----BEGIN RSA PRIVATE KEY-----
解决方案的话也比较简单,可以重新生成一个 PEM
格式的密钥,也可以将原有的 OpenSSH
格式密钥装换为 PEM
格式。
重新生成 PEM
格式的密钥:
ssh-keygen -t rsa -b 2048 -m PEM
将现有密钥转换为 PEM
格式:
# 注意备份原有的密钥, 执行 ssh-keygen -p 时会直接覆盖原密钥文件 cp id_rsa id_rsa.bak ssh-keygen -p -m PEM -f id_rsa