Node.js:如何将RSA公钥转换为OpenSSH格式?

柔道

我在节点版本:v10.14.1上,并使用以下代码生成keyPair:

generateKeyPair('rsa', {
    modulusLength: 4096,
    publicKeyEncoding: {
        type: 'pkcs1',
        format: 'pem'
    },
    privateKeyEncoding: {
        type: 'pkcs8',
        format: 'pem',
        cipher: 'aes-256-cbc',
        passphrase: ''
    }
}, (err, publicKey, privateKey) => {
  // Do stuff
});

这将创建以下格式的公钥:

-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----

不幸的是,有时需要不同的格式。就我而言,要将公钥上传到AWS,需要OpenSSH格式,我相信是这样的:

ssh-rsa 
...

如何将RSA公钥格式转换为OpenSSH格式或直接使用生成generateKeyPair()

杰夫·罗森

node-sshpk软件包可能会帮助您:https : //github.com/joyent/node-sshpk

您可以使用pubKey.toBuffer()或更复杂的方法pubKey.toBuffer('ssh')或者pubKey.toString('ssh'),如果您需要它作为字符串。

在您的示例中,代码应如下所示:

const { generateKeyPair }   = require('crypto');
const sshpk                 = require('sshpk');

generateKeyPair('rsa', {
    modulusLength: 4096,
    publicKeyEncoding: {
        type: 'pkcs1',
        format: 'pem'
    },
    privateKeyEncoding: {
        type: 'pkcs8',
        format: 'pem',
    }
}, (err, publicKey, privateKey) => {
    if(err){
        // handle Error
    }
    else{
        const pemKey = sshpk.parseKey(publicKey, 'pem');
        const sshRsa = pemKey.toString('ssh');
        console.log(ssh_rsa_2);
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用node-forge将ssh公钥从各种格式转换为Open SSH

如何将MongoDB查询从Node.js驱动程序格式转换为Mongoose格式

如何将原始模数和指数转换为RSA公钥(.pem格式)

如何将String转换为Hex Node.js

如何使用node.js生成DER格式的私有EC私钥/公钥对,其中公钥被压缩?

将RSA公钥转换为PEM格式

RSA公钥到Node-Forge公钥

GO-如何将公钥从字符串转换为PEM格式

如何将SSH公钥从PEM转换为DER格式?

如何将 PEM 格式的公钥转换为 CNG 密钥 blob?

如何将缓冲区stringify从node.js转换为python中的数组

如何将Java AES ECB加密代码转换为Node.js

如何将C#值转换为Node.js对象

如何将node.js快速服务器转换为AWS Lambda?

使用node.js的Discord机器人-如何将消息转换为小写?

在Node.js中,如何将字符串转换为json?

如何将Uint8Array视频转换为Node.js中的帧

如何将文件转换为node.js中的缓冲区?

如何将 JavaScript (Node.js) 数组转换为 C# 字符串数组?

如何将 JavaScript 字符串转换为 node.js 中的可执行代码

如何将Promise转换为Node JS中的回调?

如何将Node.js库转换为可在浏览器中使用的库?

如何将mysql行数据转换为javascript数组?Node.js 应用程序

如何将本地服务器转换为在线服务器 Node.js

如何将node js代码转换为c#加密

如何将JWK的公钥转换为OpenSSL的PEM?

如何将此Python代码转换为Node.js

libphonenumber node.js将数字格式转换为国际格式,即使该格式无效

Node.js权限被拒绝的公钥