jwk-to-ssh

    1.2.0 • Public • Published

    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
    • OpenSSH Private Keys
    • RSA Keys
    • EC Keys
      • P-256 (prime256v1, secp256r1)
      • P-384 (secp384r1)
    • Browser Version

    Note: the file size stats are for v1.0 which did not include private key packing. I plan to go back and update the stats, but just know that it grew a little over 2x.

    Need JWK to SSH? PEM to SSH?

    Try one of these:

    Need Alternate SSH Private Keys?

    This library supports OpenSSH private keys.

    • OpenSSH
    • Normal PKCS1 / SEC1 / PKCS8
      • Rasha.js
      • Eckles.js
    • Putty

    Library Usage

    You can also use it from JavaScript:

    var fs = require('fs');
    var jwktossh = require('jwk-to-ssh');
     
    var jwk = JSON.parse(fs.readFileSync("./privkey.jwk.json"));
    var pub = jwktossh.pack({
      jwk: jwk
    , comment: 'root@localhost'
    , public: true
    });
     
    console.info(pub);

    CLI Usage

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

    npm install -g jwk-to-ssh
    jwk-to-ssh [keyfile] [comment] [public]
    jwk-to-ssh pubkey.jwk.json
    jwk-to-ssh privkey.jwk.json root@localhost
    jwk-to-ssh privkey.jwk.json root@localhost public

    Legal

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

    Install

    npm i jwk-to-ssh

    DownloadsWeekly Downloads

    7

    Version

    1.2.0

    License

    MPL-2.0

    Unpacked Size

    17.5 kB

    Total Files

    17

    Last publish

    Collaborators

    • coolaj86