gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 14:12:05 37 4
gpt4 key购买 nike

我使用的是 Node 版本:v10.14.1,我使用以下代码生成 key 对:

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);
}
});

关于Node.js:如何将 RSA 公钥转换为 OpenSSH 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53897360/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com