在 macOS 中以 root 用户身份通过​​ SSH 连接到远程主机时,SSH 钥匙串无法保存密码

Dre*_*rew 3 linux mac ssh keychain macos

当使用 SSH作为标准用户无密码连接在两台 mac 机器之间连接时,两台 mac都可以正常工作。

但是每次以 root 身份执行相同操作时它都会要求我输入密码。我进入PermitRootLogin without-password了我的/etc/sshd-config

怎么了,希望我的根?任何想法为什么会发生这种情况。

然后:我尝试使用此方法将我的密码添加到钥匙串中:

$eval "$(ssh-agent)"
$ssh client@macpro.local && ssh-add -K
Run Code Online (Sandbox Code Playgroud)

钥匙串窗口出现,但由于某种原因它不允许输入,所以我只是关闭它。在我关闭它之后,终端会提示我输入密码。在我做了之后,我得到了一个连接。所以我打字

$ exit
Run Code Online (Sandbox Code Playgroud)

得到了这个:

Could not create keychain item
Identity added: /var/root/.ssh/id_rsa (/var/root/.ssh/id_rsa)
Run Code Online (Sandbox Code Playgroud)

所以我相信这是一个钥匙串问题(或者它应该出于任何原因以这种方式工作?)有趣的是,在此之后我实际上不再需要输入密码短语......直到我停止 ssh-agent :((( ((

我在两台 mac 上试过这个,结果完全一样

谁能告诉我为什么钥匙串 [失败|不允许] 在以 root 身份进行 ssh 时保存密码,而在以标准用户身份进行 ssh 时它可以正常工作?

Dre*_*rew 11

最后我自己找到了答案,它解决了我的问题。

所以永远不要使用/usr/local/bin/ssh-add. 仅/usr/bin/ssh-add使用 OS X 的默认值。它与钥匙串无缝配合,所以我所做的只是:

$ /usr/bin/ssh-add -k ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

简单的。现在密码永久存储在我的钥匙串中,我不需要ssh-add -k每次重新启动我的 mac 时都这样做。