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
Save yourself another step and just do:
Also note that if you have cleverly used something other than
.ssh/id_rsa
for your SSH keys you'll need to change the command accordingly. (I use the filename<hostname>_rsa
in order to avoid mixing up SSH keys from different computers.) You could probably do this automatically withcat ~/.ssh/config
,grep
, and some pipes, but that's way beyond my abilities lol.