Skip to content

Instantly share code, notes, and snippets.

@boldsuck
Forked from developius/README.md
Last active May 18, 2024 14:20
Show Gist options
  • Save boldsuck/df5fa013ce0bcb05dc95033a195e3faa to your computer and use it in GitHub Desktop.
Save boldsuck/df5fa013ce0bcb05dc95033a195e3faa to your computer and use it in GitHub Desktop.
Setup SSH keys for use with GitHub/GitLab/BitBucket etc

Create a new repository, or reuse an existing one.

Generate a new SSH key:

ssh-keygen -t ed25519 -C "your_email@example.com"

Since OpenSSH version 8.2 using FIDO2 security keys for SSH is recommed.
https://github.blog/2021-05-10-security-keys-supported-ssh-git-operations/
OnlyKey & Nitrokey 3 support ed25519 keys with OpenSSH. Only a YubiKey with firmware 5.2.3 or higher supports the ed25519 curve!

ssh-keygen -t ed25519-sk -C "your_email@example.com"

Copy the contents of the file ~/.ssh/id_ed25519.pub to your SSH keys in your GitHub account settings (https://github.com/settings/keys).

Test SSH key:

$ ssh -T git@github.com
Hi developius! You've successfully authenticated, but GitHub does not provide shell access.

Change directory into the local clone of your repository (if you're not already there) and run:

git remote set-url origin git@github.com:username/your-repository.git

Now try editing a file (try the README) and then do:

$ git commit -am "Update README.md"
$ git push

You should not be asked for a username or password. If it works, your SSH key is correctly configured.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment