💯 JWK to SSH in a lightweight, zero-dependency library.
Go to file
AJ ONeal fbafcc9831 wip: pack ssh private keys 2018-12-09 23:06:24 -07:00
bin wip: pack ssh private keys 2018-12-09 23:06:24 -07:00
fixtures wip: pack ssh private keys 2018-12-09 23:06:24 -07:00
lib wip: pack ssh private keys 2018-12-09 23:06:24 -07:00
README.md v1.0.0: pack EC and RSA ssh public keys 2018-12-02 00:50:49 -07:00
index.js v1.0.0: pack EC and RSA ssh public keys 2018-12-02 00:50:49 -07:00
package.json v1.0.1: fix bin 2018-12-02 00:53:43 -07:00

README.md

JWK to SSH (for node.js)

A minimal library to encode a JWK as an SSH public key (id_rsa.pub).

Works for RSA and ECDSA public keys.

Features

< 75 lines of code | < 0.7kb gzipped | 1.5kb minified | 2.1kb with comments

  • SSH Public Keys
  • RSA Public Keys
  • EC Public Keys
    • P-256 (prime256v1, secp256r1)
    • P-384 (secp384r1)
  • Browser Version

Need JWK to SSH? PEM to SSH?

Try one of these:

Need SSH Private Keys?

SSH private keys are just normal PEM files, so you can use Eckles or Rasha, as mentioned above.

CLI

You can install jwk-to-ssh and use it from command line:

npm install -g jwk-to-ssh
jwk-to-ssh pubkey.jwk.json

Usage

You can also use it from JavaScript:

var fs = require('fs');
var jwktossh = require('jwk-to-ssh');

var jwk = JSON.parse(fs.readFileSync("./pubkey.jwk.json"));
var pub = jwktossh.pack({
  jwk: jwk
, comment: 'root@localhost'
});

console.info(pub);

jwk-to-ssh.js | MPL-2.0 | Terms of Use | Privacy Policy