SSH keypair setup for GitHub (or GitHub/GitLab/BitBucket, etc, etc)
Create a repo.
Make sure there is at least one file in it (even just the README.md)
Generate a SSH key pair (private/public):
ssh-keygen -t rsa -C "your_email@example.com"
or even better:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
It also possible to use ed25519. There are pros and cons, but personally I've had some issues and that is the reason I've chosen to stick to 4096 rsa for now.
Copy the contents of the public SSH key
macOS:
pbcopy < ~/.ssh/id_rsa.pub
GNU/Linux (requires the xclip package):
xclip -sel clip < ~/.ssh/id_rsa.pub
Windows Command Line:
type %userprofile%\.ssh\id_rsa.pub | clip
Git Bash on Windows / Windows PowerShell:
cat ~/.ssh/id_rsa.pub | clip
or ofcourse copy it via your favorite editor, cat, or whatever suits your needs :)
Copy the public SSH key to GitHub
Copy the contents of the to your SSH keys to your GitHub account settings (https://github.com/settings/keys).
Test the SSH key:
ssh -T git@github.com
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 add -A
git commit -am "Update README.md"
git push
Add the key to the ssh-agent
ssh-add ~/.ssh/id_rsa
You should not be asked for a username or password. If it works, your SSH key is correctly configured.
I ran the ssh test and it ran as expected but when I run:
git push
I get the following response:
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ctimmer/poll-looper/'
Why is the new authentication (ssh) being recognized? What am I missing?
Thanks,
Curt