You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js 10使用ssh-ed25519密钥报错,加-m pem仍未解决

解决Node.js 10下ed25519密钥解析错误的方案

1. 确认程序读取的密钥路径是否正确

  • 检查代码中硬编码、配置文件或环境变量指定的私钥路径,确保指向你新生成的PEM格式密钥,而非其他残留的旧密钥文件
  • 可以在代码中临时添加日志,打印读取的私钥内容开头,确认是否是新生成的-----BEGIN PRIVATE KEY-----格式

2. 验证密钥生成/转换的正确性

  • 重新生成密钥时,务必用完整命令确保输出PKCS#8格式的PEM:
    ssh-keygen -t ed25519 -m pem -f ~/.ssh/id_ed25519
    
  • 如果已有密钥,可直接转换为PEM格式:
    ssh-keygen -p -f ~/.ssh/id_ed25519 -m pem
    
  • 检查私钥文件开头,必须是-----BEGIN PRIVATE KEY-----,而非-----BEGIN OPENSSH PRIVATE KEY-----(Node.js 10不支持后者)

3. 检查第三方库版本兼容性

  • 若使用ssh2这类SSH客户端库,Node.js 10对应的库版本需适配:ssh2 v0.8.x及以上版本才较好支持ed25519的PEM密钥,确保你安装的库版本与Node.js 10兼容

4. 修复密钥文件权限

  • Linux/macOS下私钥权限必须设为600,否则部分库会拒绝读取,甚至 fallback 到其他路径的旧密钥:
    chmod 600 ~/.ssh/id_ed25519
    

5. 清理SSH代理缓存

  • 若系统运行了ssh-agent,可能缓存了旧密钥,需重启代理并重新加载新密钥:
    ssh-agent -k
    eval $(ssh-agent)
    ssh-add ~/.ssh/id_ed25519
    

内容的提问来源于stack exchange,提问作者stackuser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:25:22