Add to your SSH Authorized Keys from a string, file, or url.


These are the files / directories that are created and/or modified with this install:


# Windows

Cheat Sheet

Does the tedious work of making sure your .ssh/authorized_keys exists with the proper permissions, and that only valid keys from a given string, file, or URL go into it!

Use ssh-authorize to add trusted public keys to allow others to login to your servers / systems / local computers;

# ssh-authorize <ssh-pubkey-or-file-or-url> [comment]
ssh-authorize 'My GitHub Keys'

    ssh-authorize <ssh-pubkey-or-file-or-url> [comment]


    ssh-authorize 'My GH Keys'

    ssh-authorize ./

    ssh-authorize 'ssh-rsa'



How to Add SSH Public Keys Manually

For the simplest case it seems almost silly to even have a utility for this:

mkdir -p ~/.ssh/
chmod 0700 ~/.ssh/

touch ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/

curl >> ~/.ssh/authorized_keys

but... tedium, error checking... things are never as simple as they seem.

How to use on Windows

You will need to run from an Elevated PowerShell, or use the Windows sudo.

Why use ssh-authorize at all?

At first blush it seems easy enough to just add download or add files to ~/.ssh/authorized_keys, but there are complexities (especially on Windows).

This just adds a layer of convenience, and a few benefits:

  • handles arbitrary files and URLs, failing bad key lines
  • sets permissions correctly, even if they were incorrect
    (which almost no one will to do successfully by hand on Windows on the first try)
  • works curl (macOS, Ubuntu) or wget (Docker, Alpine)
  • enforces https


Report an Issue Submit Installer Star on GitHub