GitHub SSH AuthorizedKeysCommand Utility

Use the SSH public keys you've added to GitHub to log in to your machines!

0. Compile for your target OS

Currently, ghsshauth has been tested on Debian and FreeBSD, but should basically support all UNIX-like systems. Feel free to send patches.

$ git clone git@github.com:benburwell/ghsshauth.git
$ cd ghsshauth
$ sudo make install

1. Configure host

Open /etc/ssh/sshd_config, find the AuthorizedKeysCommand line, and change it to:

AuthorizedKeysCommand /usr/local/sbin/ghsshauth %h
AuthorizedKeysCommandUser root

(the %h represents the home directory of the user being authenticated).

In your home directory, create the file .ssh/authorized_github_users and add your GitHub username (and any other username you want to have access) to the file, one per line. You can begin lines with the # character to have them be ignored.

IMPORTANT: You'll need to make sure that the AuthorizedKeysCommandUser has read access to the entire path up to your authorized_github_users file. The easy way to do this is to make set AuthorizedKeysCommandUser root. If you'd rather use AuthorizedKeysCommandUser nobody, then you'll need to make sure the nobody user has read access to ~/.ssh/authorized_github_users. This means your home directory needs to be chmod 755 as does your .ssh directory. If you go this route, be sure that any secret keys in your .ssh directory such as id_rsa are chmod 600, else secret keys they will no longer be!