Using PuTTY SSH keys with GitHub / BitBucket / Azure DevOps on Windows
Published:
Couldn't get this to work, but now it does, so... time for another "note to self". 🙂
Prerequisites
Setup
- Open
puttygen
. - Either Load an existing private key, or Generate a new one.
- Copy the public key ("Public key for pasting ...") and add it to the git provider settings:
- https://github.com/settings/keys
- https://bitbucket.org/account/user/[username]/ssh-keys/
- https://dev.azure.com/[organization]/_usersSettings/keys
- Open
pageant
. - Load your private key.
- Check that the key authentication works with
plink
:
plink -v git@github.com
plink -v git@bitbucket.org
plink -v git@ssh.dev.azure.com
- Set the
GIT_SSH
environment variable toC:\Program Files\PuTTY\plink.exe
⬆ This is the detail that so many StackOverflow answers and blog/forum posts didn't mention. Without this, plink worked fine, but git commands still failed with authentication errors. - (optional) Add a shortcut to the private key file to your startup folder.
This way
pageant
will be automatically started, with your key, ready to go, whenever Windows boots up.
start shell:startup
Usage
Now, as long as pageant
is running with your
private key loaded, it should work to clone, pull, push, etc., both to and from,
both private and public git repositories. E.g. like this:
git clone git@github.com:example/some-private-repo.git
If you're asked to accept/store/cache a key, but pressing y
doesn't
work, connect using putty
first, which should give you a dialog with the same question
which does work. Putty will complain/crash because there's not actually
an ssh shell to connect to, but that's fine. After the key has been saved by putty,
git should work fine. E.g. like this:
putty -ssh git@github.com
- Sources