Contributed by Fabien Loudet, Linux SysAdmin at Rosetta Stone
Tired of always having to enter your SSH key passphrase when logging in to remote machines?
Here comes ssh-agent
. Enter the passphrase once and it will keep it in memory for you
Using ssh-agent in your shell session:
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-hZQhwQlxahPX/agent.1833; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1834; export SSH_AGENT_PID;
echo Agent pid 496;
Copy/paste the 2 first lines from above:
$ SSH_AUTH_SOCK=/tmp/ssh-hZQhwQlxahPX/agent.1833; export SSH_AUTH_SOCK;
$ SSH_AGENT_PID=1834; export SSH_AGENT_PID;
Register your key and enter your password for the last time of this session:
$ ssh-add .ssh/id_rsa
Enter passphrase for .ssh/id_rsa:
Identity added: .ssh/id_rsa (.ssh/id_rsa)
And now SSH auth will not ask you for the passphrase anymore
BONUS: list your keys with:
$ ssh-add -l
Adding the following to
~/.ssh/config
will help wit this. It also solves @elsiehupp's issue - i.e. there's no need to write code to do this automagically. Enjoy!Here's the manual page:
As a bonus, on a Mac you have the
UseKeychain
option (check it out in the man page on your Mac).