Enable the ssh-agent service, use ssh-add to add your key to the ssh store, and set GIT_SSH in your environment (if necessary) and git/ssh will remember your passphrase via ssh-agent.
Entering Git Username and Password in Remote URL To prevent Git from asking for your username and password, you can enter the login credentials in the URL as shown. The main drawback of this method that your username and password will be saved in the command in the Shell history file.
SSH keys with passphrase or without it If you do create a key with passphrase, you will be asked for passphrase every time you try to communicate with your Git repository in Beanstalk. Using passphrases increases the security when you are using SSH keys. Using a key without a passphrase can be risky.
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 are three 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.
Run PuTTY's pageant.exe, open your .ppk file ("Add Key"), and provide your passphrase for your key.
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:
plink.exe [email protected]
If the git repository you are trying to connect to is hosted somewhere else, then replace [email protected] 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 in several other places in cyberspace.
Run TortoiseGit's pageant.exe, open your .ppk file ("Add Key") and provide your passphrase for your key.
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.
Third solution Assumes Windows, msysgit, and the native command prompt.
start-ssh-agent
Every time I set up a new desktop I forget these instructions, so I'm adding another answer here since I stumble across it equally often!
OpenSSH Authentication Agent
service and make it start automatically.
Version 10.0.19042.867
I had to re-do this step!ssh-add
on the command line.$ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exe
to your session, or permanently to your user environment.Windows has been shipping with OpenSSH for some time now. It includes all the necessary bits for ssh to work alongside Git, but it still seems to need some TLC before it works 100% seamlessly. Here's the steps I've been following with success as of Windows ver 10.0.18362.449 (you can see your Windows 10 version by opening a cmd.exe shell and typing ver
).
I assume here that you already have your SSH key setup, and is located at ~/.ssh/id_rsa
OpenSSH Authentication Agent
service in the list.OpenSSH Authentication Agent
service, and choose 'Properties'.Startup type:
to Automatic
.Start
button to change the service status to Running
.OK
, and close the Services app.ssh-agent
ssh-agent
: ssh-add
(you can add the path to your key as the first argument if it differs from the default).git clone [email protected]:octocat/Spoon-Knife
Enter passphrase for key '/c/Users/your_user_name/.ssh/id_rsa':
GIT_SSH
Environment VariableIn any session you can simply set this environment variable and the prompt for your passphrase will stop coming up and ssh will use the ssh-agent
on your behalf. Alternatively, you can set your passphrase into your user's environment permanently.
To set GIT_SSH
in the current shell only:
ssh.exe
: $Env:GIT_SSH=$((Get-Command -Name ssh).Source)
To set GIT_SSH
permanently
Variable name:
field to GIT_SSHVariable value:
field to path-to-ssh.exe (typically C:\Windows\System32\OpenSSH\ssh.exe
).Note that this is likely going to change with new steps/procedures as Windows 10 progresses and as I learn more. I will attempt to keep this updated, I look forward to feedback in the comments.
In case you are using Git bash under Windows you can perform the following:
eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa
it will ask for pass phrase in the second command, and that's it. Each additional action you will need to do (which once required pass phrase) won't ask you for the pass phrase (see an example in the screen shot below):
For anybody needing more detailed instructions, see this page: http://help.github.com/working-with-key-passphrases/
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With