Node.js: Как преобразовать открытый ключ RSA в формат OpenSSH?
Я нахожусь на версии узла: v10.14.1, и я генерирую пары ключей с этим кодом:
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()
?
1 ответ
Вам может помочь пакет node-sshpk: https://github.com/joyent/node-sshpk
использование pubKey.toBuffer()
или, немного сложнее, pubKey.toBuffer('ssh')