How can I perform a `git pull` without re-entering

2019-03-08 00:55发布

问题:

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.

回答1:

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.



回答2:

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'


回答3:

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.



回答4:

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



回答5:

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.