I began using GitHub for Mac to clone my repositories down to my Mac. Then, every time I committed and pushed something up to GitHub, I got prompted for my username and password, like this:
$ git push Username: Password:
After a few commits, this got annoying very quickly. I was sure that I had setup my SSH keys correctly, and retested them to make sure. After some searching, I found the source of the problem: GitHub for Mac clones your repo using HTTPS, which subsequently causes the authentication prompt when performing a push.
Navigate to your cloned directory, and examine the .git/config file. You will see a section entitled [remote “origin”] that looks like this:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://github.com/cosjef/first_app.git
Note the “url” directive pointing to your GitHub repo with the https protocol. This is what we have to change to stop the repeated authentications. From a command prompt inside your local repo directory, issue this command to change the protocol, substituting your login name and repo name where appropriate:
git config remote.origin.url email@example.com:your_username/your_project.git In the instance of my repo, running the command looks like this:
git config remote.origin.url firstname.lastname@example.org:cosjef/first_app.git
After running the command, reopen your .git/config file, and you now will see that the protocol has changed:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = email@example.com:cosjef/first_app.git If you now try a push operation, you should not be challenged for a username and password.