SSH keychain fails to save passphrase when connecting to remote host via SSH as root in macOS

3

3

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?

Drew

Posted 2015-02-21T08:22:31.330

Reputation: 1 628

Is root enabled on the local Mac? It's not by default. – Tetsujin – 2015-02-21T10:26:51.170

Sorry could you explain what you mean more detailed? – Drew – 2015-02-21T19:33:34.350

Mac isn't like nix, it doesn't have the root account enabled by default, for security, as almost no process on a Mac ever needs root access. See http://superuser.com/questions/831712/how-can-i-become-root-in-yosemite

– Tetsujin – 2015-02-22T08:20:03.400

Oh of course it is enabled. – Drew – 2015-02-22T18:55:30.337

Answers

11

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.

Drew

Posted 2015-02-21T08:22:31.330

Reputation: 1 628