ssh-key-generator
v1.0.0
Published
Generate OpenSSH-compatible RSA keys in Node.js with PEM private keys
Maintainers
Readme
ssh-key-generator
Generate OpenSSH-compatible RSA key material in Node.js.
Features
- 4096-bit RSA by default
- PEM private keys
- OpenSSH public key lines for:
authorized_keysknown_hosts
- Helpers for:
- user/client keys
- host keys
Install
npm install ssh-key-generatorUsage
import { writeFileSync } from 'node:fs';
import {
createUserKeyPair,
createHostKeyPair,
} from 'ssh-key-generator';
const userKeys = createUserKeyPair({
comment: '[email protected]',
passphrase: 'correct horse battery staple',
});
writeFileSync('id_rsa.pub', userKeys.publicKeyLine + '\n', { mode: 0o644 });
writeFileSync('id_rsa', userKeys.privateKeyPem, { mode: 0o600 });
const hostKeys = createHostKeyPair({
comment: 'host.example.com',
hosts: ['host.example.com', '192.0.2.10'],
});
writeFileSync('ssh_host_rsa_key.pub', hostKeys.publicKeyLine + '\n', { mode: 0o644 });
writeFileSync('ssh_host_rsa_key', hostKeys.privateKeyPem, { mode: 0o600 });
console.log(hostKeys.knownHostsLine);Notes
- Host private keys are exported as unencrypted PEM PKCS#1.
- Client private keys default to PEM PKCS#8.
- Public keys are emitted in OpenSSH text format such as
ssh-rsa AAAA... comment.
