无法解析私钥:不支持的密钥格式。

19
在我的MacBook Pro上,使用OS Majave进行SSH-KEYGEN生成了一个新的SSH密钥,用于node.js模块SSH2。然而,我收到了错误消息:无法解析私钥:不支持的密钥格式
我使用ssh命令验证了该密钥,它可以正常工作。但在node.js模块SSH2中不行。
在私钥文件中,头部为-----BEGIN OPENSSH PRIVATE KEY-----,而结尾为-----END OPENSSH PRIVATE KEY-----
我检查了模块ssh2-streams keyParser.js。正则表达式模式RE_HEADER_OPENSSH_PRIV不包括我的头部。有人能帮忙吗?

我在 https://github.com/mscdex/ssh2-streams/issues/100 找到了这个问题。有人知道如何将 ssh-keygen 回退到旧版本吗? - George Zhang
你用了什么参数来运行 ssh-keygen - mihai
我已经尝试了"-o"和几乎所有可能的组合,但它仍然在头部使用OPENSSH。目前,我只是复制了旧的SSH2私钥。 - George Zhang
事实上,你不应该使用-o选项。请参考这篇文章https://tutorialinux.com/convert-ssh2-openssh/。 - mihai
关于node-ssh模块的更新,请参考以下链接: https://dev59.com/6Yvda4cB1Zd3GeqPUxiU#76405892 - Prateek Jain
2个回答

23

我遇到了同样的问题,找到了解决方法这里

基本上,在创建密钥时使用PEM选项:

ssh-keygen -m PEM -t rsa 

13

您也可以转换现有的密钥,而不是创建新的密钥(在运行以下命令之前,请确保备份您的原始密钥,因为它将被覆盖):

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

(来自https://serverfault.com/a/950686的原始答案)

如果您需要在Linux上安装Windows字体,可以使用以下命令:
1. 安装msttcorefonts软件包:
sudo apt-get install msttcorefonts
2. 更新字体缓存:
sudo fc-cache -f -v
这将使您能够在Linux系统中使用Windows字体。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接