Create a new repository, or reuse an existing one.
Generate a new SSH key:
ssh-keygen -t ed25519 -C "your_email@example.com"
Note: If you are using a legacy system that doesn't support the Ed25519 algorithm, use:
ssh-keygen -t rsa -C "your_email@example.com"
OR
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Copy the contents of the file ~/.ssh/id_ed25519.pub
or ~/.ssh/id_rsa.pub
to your SSH keys in your GitHub account settings (https://github.com/settings/keys).
Add private key to ssh agent
# start the ssh-agent in the background
$ eval "$(ssh-agent -s)"
> Agent pid 59566
$ ssh-add ~/.ssh/id_ed25519
Test SSH key:
$ ssh -T git@github.com
Hi Sheraz Haider! You've successfully authenticated, but GitHub does not provide shell access.
For New Project
Clone the project and cd into it
git clone git@github.com:username/your-repository.git
cd your-repository
For Existing Project
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 and then do:
$ git commit -m "Commit Message"
$ git push
You should not be asked for a username or password. If it works, your SSH key is correctly configured.