如何解决VSCode SFTP插件连接私钥出错

1,471 阅读1分钟

当我试图在Visual Studio Code中使用SFTP扩展上传文件时,出现了以下错误:

Error while signing data with privateKey: error:06000066:public key routines:OPENSSL_internal:DECODE_ERROR

完整的堆栈跟踪是

[04-15 09:45:25] [error] Error: [120.55.113.108]: Error while signing data with privateKey: error:06000066:public key routines:OPENSSL_internal:DECODE_ERROR
    at Client.

ssh连接使用的是公钥认证,而我的sftp配置(sftp.json)如下:

{
    "name": "My Server",
    "host": "test",
    "protocol": "sftp",
    "privateKeyPath": "/home/test/.ssh/id_rsa",
    "port": 22,
    "username": "root",
    "remotePath": "/var/www/html/test/"
}

解决方案

为了解决这个错误,我们可以将私钥文件从OpenSSH私钥格式转换成PEM格式:

ssh-keygen -p -m PEM -f /home/test/.ssh/id_rsa

再试一下,现在就可以工作了: