How can I perform a `git pull` without re-entering my SSH password?
LinuxGitSshGithubLinux Problem Overview
Is it possible to configure git/ssh
so I don't have to enter my passphrase every time I want to perform a git pull
? Note that the repo is a private one on github.
Or, alternatively, what would be the best practice to automate code deployment from a private Github repo?
Additional details: EC2 instance running a public AMI based on Fedora.
Linux Solutions
Solution 1 - Linux
Have a look at this link https://help.github.com/articles/working-with-ssh-key-passphrases/
> But I don’t want to enter a long passphrase every time I use the key!
>
> Neither do I! Thankfully, there’s a nifty little tool called
> ssh-agent
that can save your passphrase securely so you don’t have
> to re-enter it. If you’re on OSX Leopard or later your keys can be
> saved in the system’s keychain to make your life even easier. Most
> linux installations will automatically start ssh-agent for you when
> you log in.
Solution 2 - Linux
I enabled the password caching as described here:
https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
To cache the password for a month:
git config --global credential.helper 'cache --timeout=2628000'
Solution 3 - Linux
Try this:
git config credential.helper store
You'll have to enter your password once, after that it is stored in a folder inside root.
As comments pointed out, This does NOT work for SSH passwords, only for HTTPS passwords.
Solution 4 - Linux
I dont know why hasnt anyone reported this yet. But the simplest approach would be to simply add a single line AddKeysToAgent yes
on the top of the .ssh/config file. Ofcourse ssh-agent
must be running beforehand. If its not running ( check by the command ssh-agent
on the terminal ) , then simply run it eval $(ssh-agent)
I can confirm that this works, because in my project with lots of submodules and for each submodule being cloned, I had to type in my ssh passphrase. After the above trick, I dont need to do it anymore.
The source of the solution is https://askubuntu.com/questions/362280/enter-ssh-passphrase-once/853578#853578
Solution 5 - Linux
Your situation is now fixed, however for me it was the fact that I had more than one key in ~/.ssh/
To resolve the problem I had to create a file called ~/.ssh/config
and add the line:
IdentityFile ~/.ssh/my_key2_rsa
where ~/.ssh/my_key2_rsa
is my key.
Solution 6 - Linux
I updated my ~/.ssh/config file to read the following, and no longer have to enter my ssh password.
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519