Generates a SSH key-pair
- Make sure you have ssh-keygen (try
$ ssh-keygen
if you aren't sure) - npm package install
npm install ssh-keygen
OR download from github and place in ./node_modules
var keygen = require("ssh-keygen");
var fs = require("fs");
var location = __dirname + "/foo_rsa";
var comment = "[email protected]";
var password = "keypassword"; // false and undefined will convert to an empty pw
keygen(
{
location: location,
comment: comment,
password: password,
read: true
},
function(err, out) {
if (err) return console.log("Something went wrong: " + err);
console.log("Keys created!");
console.log("private key: " + out.key);
console.log("public key: " + out.pubKey);
}
);
The following shell command will get executed:
$ ssh-keygen -t rsa -b 2048 -C "[email protected]" -N "keypassword" -f ./foo_rsa
Generating public/private rsa key pair.
Your identification has been saved in ./foo_rsa.
Your public key has been saved in ./foo_rsa.pub.
The key fingerprint is:
02:f7:40:b6:c7:b3:a3:68:16:53:dd:86:63:df:b5:33 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| o |
| o + o |
| . = O o . |
| + = * . . . |
| o . S . . E |
| + o . o |
| + . |
| o |
| |
+-----------------+
- location, desired location for the key. The public key will be at the location +
.pub
, defaults temp dir - read, should the callback have the key files read into it, defaults true
- force, destroy pre-existing files with the location name and the public key name, defaults true
- destroy, destroy the key files once they have been read, defaults false
- comment, the comment that should be embedded into the key, defaults empty
- password, the password for the key, defaults empty
- encryption, Supports all other encrytpions by default rsa
- size , the bit size for the encryption, by default the recommended size for the encryption specified
It is advisable to generate your keys on a machine with a significant random source like one with a mouse/trackpad.
ssh-keygen is open source under the MIT license
This package bundles binaries for windows. The current version is: 2.4.4.2-rc3
- Real tests
Contributors welcome!