I recently upgraded my macOS but when I tried to perform an SSH operation, I was asked to enter a passphrase:
Enter passphrase for key '/Users/remarkablemark/.ssh/id_rsa': email@example.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
I took the following steps to resolve this issue.
Check SSH key
First, check if you have a key pair:
ls -a ~/.ssh/
If you don’t see the following files:
Then you’ll need to generate a new SSH key.
Generate SSH key
ssh-keygen -t rsa -b 4096 -C "firstname.lastname@example.org"
Add SSH key to agent
ssh-agent if it’s not running already:
eval $(ssh-agent -s)
Agent pid 5451
ssh-agent manages your keys so check if it’s there:
The agent has no identities.
Since there are no keys, add your key to the
ssh-agent (hit Enter when asked to enter a passphrase):
ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/remarkablemark/.ssh/id_rsa: Identity added: /Users/remarkablemark/.ssh/id_rsa (/Users/remarkablemark/.ssh/id_rsa)
-Kstores the passphrase in your keychain.
Now you should be able to perform SSH operations without being asked for a passphrase:
Already up to date.
To prevent having to enter a passphrase even after a restart, add the following to your SSH config file
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa