HTTP Request Exception Encountered [SOLVED]

Franklin Ohaegbulam
3 min readFeb 12, 2023

--

Cover image by Franklin Ohaegbulam

GitHub recently stopped using usernames and passwords to authenticate git pushes due to identity and security reasons. And this new development was challenging for me because I found it difficult at first to push my project to the remote repository.

The old way to associate a commit was:

git config --global user.name "your username"
git config --global user.email "your email"

The above method works when you fork and clone a repository using HTTP. Following this update, if you try pushing to GitHub, you are likely to come across this error;

Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

Solution: Use an open SSH public key to authenticate the Git push

1. Generate an SSH public key

Open your GitBash desktop app, and enter the command:

ssh-keygen -o -t rsa -C "yourname@email.com

You should see, "Enter file in which to save the key". Hit the ENTER key to bypass, and use the default file location ~/.ssh/id_rsa. You will also be prompted to enter a passphrase, which is the password for the key. Press the ENTER key to skip.

Bypass the prompt "Enter file in which to save the key" by hitting the ENTER key. Do the same when asked to enter a passphrase.

If you already have an SSH key, skip this step and enter the following command to display your SSH key:

ls .ssh

This command displays your SSH key, if you have one.

If none exist yet, you should get notified with the message “No such file or directory.”

2. Show the contents of your SSH public key

In GitBash, run the command:

cat .ssh/id_rsa.pub

This returns a long string of SHA256 encrypted messages known as “key fingerprints.” You should get something like this:

The key fingerprint is:
SHA256:BG/dbxxxxxxxxxxxxxxx/pE4xxxxxxxx yourname@email.com
The key's randomart image is:
+---[RSA 1234]----+
| oo o |
| oo.+.o o |
| +++Bo*.o |
| o .====B. |
| ES.+o*+o..|
| . ooo=++=|
| ...o.o=o|
| o . |
| . |
+----[SHA256]-----+

Copy this key fingerprint to the clipboard.

3. Add SSH to the SSH agent program

To add SSH to the SSH agent, enter this instruction in your GitBash:

ssh-agent -s

4. Add RSA key to SSH

Next, add an RSA key to SSH using the command:

ssh-ad .ssh/id_rsa

The RSA key is alphanumeric and looks like gc_54340.

5. Sync the SSH key to your GitHub account

Now, sign in to your account on GitHub. Navigate to Profile, then Settings, and locate the tab labeled “SSK and GPG keys.”

Settings from GitHub profile
Select SSH and GPG keys on GitHub
Add SSH keys on GitHub

Click on “New SSH key,” then paste the encrypted SSH key. Give this key a name you can easily remember; it could be a pet name or your PC name.

6. Optional: Verify the authentication between your local system and GitHub

ssh -t git@github.com

Voila! You just set up a public SSH key. Now, you can clone a repository via an SSH URL and successfully push your commits to your remote GitHub repository, like:

You don’t have to copy the HTTP URL of a repository, which looks like this:

https://github.com/<Username>/<Project>.git

Instead, use the SSH URL;

git@github.com:<Username>/<Project>.git

Additionally, you can set the URL to use SSH for git push using the command:

git remote set-url origin git@github.com:<Username>/<Project>.git

References

Sign up to discover human stories that deepen your understanding of the world.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Franklin Ohaegbulam
Franklin Ohaegbulam

Written by Franklin Ohaegbulam

Frontend Engineer. Visual Designer. Writer. Open Source & Blockchain Enthusiast. Renewable Energy Advocate. Blog: https://frankiefab.hashnode.dev

No responses yet

Write a response