Git keeps asking me for my ssh key passphrase
I created keys as instructed in the github tutorial, registered them with github, and tried using ssh-agent explicitly — yet git continues to ask me for my passphrase every time I try to do a pull or a push.
What could be the cause?
Once you have started the SSH agent with:
eval $(ssh-agent)
Do either:
-
To add your private key to it:
ssh-add
This will ask you your passphrase just once, and then you should be allowed to push, provided that you uploaded the public key to Github.
-
To add and save your key permanently on macOS:
ssh-add -K
This will persist it after you close and re-open it by storing it in user's keychain.
-
To add and save your key permanently on Ubuntu (or equivalent):
ssh-add ~/.ssh/id_rsa
This has been happening to me after restarts since upgrading from OS X El Capitan (10.11) to macOS Sierra (10.12). The ssh-add
solution worked temporarily but would not persist across another restart.
The permanent solution was to edit (or create) ~/.ssh/config
and enable the UseKeychain
option.
Host *
UseKeychain yes
Related: macOS keeps asking my ssh passphrase since I updated to Sierra
If you've tried ssh-add
and you're still prompted to enter your passphrase then try using ssh-add -K
. This adds your passphrase to your keychain.
Update: if you're using macOS Sierra then you likely need to do another step as the above might no longer work. Add the following to your ~/.ssh/config
:
Host *
UseKeychain yes