macOS SSH – SSH Keychain Fails to Save Passphrase for Root Connections

keychainlinuxmacmacosssh

When using SSH to connect between two mac machines as a standard user passwordless connection works ok on both macs.

But each time when doing the same as root it asks me to enter the passphrase. I got PermitRootLogin without-password in my /etc/sshd-config

What's wrong wish my root? Any ideas why does this happen.

Then:
I've tried to add my passphrase to keychain using this method:

$eval "$(ssh-agent)"
$ssh client@macpro.local && ssh-add -K

The keychain window appears but for some reason it doesn’t allow to type in it so I just close it. And after I close it terminal prompts me to enter a passphrase. And after I did I get a connection. So I typed

$ exit

and got this:

Could not create keychain item
Identity added: /var/root/.ssh/id_rsa (/var/root/.ssh/id_rsa)

So it's a keychain problem I believe (or is it supposed to work this way for any reason?)
Funny thing that after this I actually don't need to enter the passphrase anymore… until I stop ssh-agent :(((((

I tried this on two macs and get absolutely the same result

Could anyone tell me why keychain [fails|doesn't allow] to save passphrase when sshing as root while it works fine when doing ssh as standard user?

Best Answer

Well finally I've found the answer myself and it solved my problem.

So never use the /usr/local/bin/ssh-add. Use only default /usr/bin/ssh-add which goes with OS X. It works seamlessly with keychain so what I've done is just:

$ /usr/bin/ssh-add -k ~/.ssh/id_rsa

Simple. Now the passphrase is permanently stored in my keychain and I don't need to do ssh-add -k every time I restart my mac.

Related Question