I realize that this question is coming up on two years old, but I had the same issue and several answers here did not completely answer the question for me. Here is two step-by-step solutions, depending on whether you use TortoiseGit in addition to msysgit or not.

First solution Assumes Windows, msysgit, and PuTTY.

Install msysgit and PuTTY as instructed.

(Optional) Add PuTTY to your path. (If you do not do this, then any references to PuTTY commands below must be prefixed with the full path to the appropriate executable.)

If you have not done so already, then generate a key hash as instructed at GitHub or as instructed by your Git host.

Again, if you have not already done so, convert your key for use with PuTTY’s pageant.exe using puttygen.exe. Instructions are in PuTTY’s documentation, in this helpful guide, and several other places in cyberspace.

Access Windows’ environment variables dialog (Right-click on “Computer”, Click on “Properties”, Click on “Advanced system settings” or the “Advanced” tab, click on “Environment Variables”). Add the following environment variable:

GIT_SSH=C:\full\path\to\plink.exe

Replace “C:\full\path\to” with the full installation path to PuTTY, where plink.exe is found. It is probably best to add it to the “User variables” section. Also, make sure that the path you use to plink.exe matches the path you use for Pageant (pageant.exe). In some cases you may have several installations of PuTTY because it might be installed along with other applications. Using plink.exe from one installation and pageant.exe from another will likely cause you trouble.

Open a command prompt.

If you are trying to connect to a git repository hosted at Github.com then run the following command:

If the git repository you are trying to connect to is hosted somewhere else, then replace git@github.com with an appropriate user name and URL. (Assuming Github) You should be informed that the server’s host key is not cached, and asked if you trust it. Answer with a y. This will add the server’s host key to PuTTY’s list of known hosts. Without this step git commands will not work properly. After hitting enter, Github informs you that Github does not provide shell access. That’s fine…we don’t need it. (If you are connecting to some other host, and it gives you shell access, it is probably best to terminate the link without doing anything else.)

All done! Git commands should now work from the command line. You may want to have pageant.exe load your .ppk file automatically at boot time, depending on how often you’ll be needing it.

Second solution Assumes Windows, msysgit, and TortoiseGit.

TortoiseGit comes with PuTTY executables, and a specially modified version of plink (called TortoisePlink.exe) that will make things easier.

Install msysgit and TortoiseGit as instructed.

If you have not done so already, then generate a key hash as instructed at GitHub or as instructed by your Git host.

Again, if you have not already done so, convert your key for use with TortoiseGit’s pageant.exe using TortoiseGit’s puttygen.exe. Instructions are in PuTTY’s documentation, in the helpful guide linked to in the first solution, and several other places in cyberspace.

Access Windows’ environment variables dialog (Right-click on “Computer”, Click on “Properties”, Click on “Advanced system settings” or the “Advanced” tab, click on “Environment Variables”). Add the following environment variable:

GIT_SSH=C:\full\path\to\TortoisePlink.exe

Replace “C:\full\path\to” with the full installation path to TortoiseGit, where TortoisePlink.exe is found. It is probably best to add it to the “User variables” section. Also, make sure that the path you use to TortoisePlink.exe matches the path you use for Pageant (pageant.exe). In some cases you may have several installations of PuTTY because it might be installed along with other applications. Using TortoisePlink.exe from the TortoiseGit installation and pageant.exe from another installation of a different application (or from a standalone PuTTY installation) will likely cause you trouble.

All done! Git commands should now work from the command line. The first time you try to connect to your git repository you will probably be informed that the server’s host key is not cached, and asks if you trust the server. Click on “Yes”. (This is TortoisePlink.exe in action.)

You may want to have pageant.exe load your .ppk file automatically at boot time, depending on how often you’ll be needing it.

I don’t do windows, but ssh has an agent concept that can remember passphrases for you. OS X has this enabled by default. Your ssh client probably has a way to configure this.

One extra solution 5 years, 8 months and 6 days after the question was posted wouldn’t be a bad idea so here goes.

NOTE: Assumes you are using a windows computer.

Download the git-credential-winstore.

Run it! If you have GIT in your PATH environment variable, it should just work. If you don’t, run git-credential-winstore -i C:\Path\To\Git.exe.

The next time you attempt to commit to a repository, you’ll be prompted to enter your credentials. That should be it. You will not be asked for your credentials any longer until you change your password.

Just for your knowledge… Your credentials are stored in the Windows Credential Store

Where are you storing my credentials?

This app just uses the existing Windows Credential Store to hold your credentials. You can see the stored credentials by going to Control Panel > User Accounts > Credential Manager and choosing “Windows Credentials”. The entries starting “git:” are from git-credential-winstore.

[edit – misread the question, this is an answer to a related problem. leaving rephrased version for posterity]

My case was that I was trying to push to a repo that was hosted on one of our servers. Whenever I tried to do a push, git would ask me for my password (nb – password, not the passphrase to my private key).

By adding my public key to the authorised keys on the server, I was able to get password-free pushes to that server. And, because there was no passphrase on my private key (which is bad practice btw!) I didn’t need to type anything at all in.

Here’s the command to add your public key to a server. It assumes the user git is the user on the server.

You could achieve the same thing by logging onto the server, and manually appending your public key to the file at ~/.ssh/authorized_keys

If you set a password for your key file, you’ll always need to type in that password when connecting. If you create a passwordless key, then you won’t have to type it every time, however, anyone with access to your key file can now connect to your github account.

ssh-agent may also work. Try running that and see if it will remember your passphrase.

There is a much simpler solution to this problem if you don’t mind having you password stored in plaintext and you’re using TortoiseGit.

Simply create a _netrc file in your user profile directory – ie in Windows 7 it would be C:\Users\MyName\_netrc. This file will store your login information in this format: