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')

Другие вопросы по тегам