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

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

当使用 SSH 连接两台 Mac 机器时作为标准用户无密码连接在两台 Mac 上均可正常进行。

但每次做同样的事情时以 root 身份它要求我输入密码。我进入了PermitRootLogin without-password我的/etc/sshd-config

我的 root 出了什么问题?有人知道为什么会发生这种情况吗?

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

$eval "$(ssh-agent)"
$ssh [email protected] && ssh-add -K

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

$ exit

并得到这个:

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

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

我在两台 Mac 上尝试过,结果完全相同

有人能告诉我为什么当以 root 身份进行 ssh 时,keychain [失败|不允许] 保存密码,而以标准用户身份进行 ssh 时却可以正常工作?

答案1

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

所以永远不要使用/usr/local/bin/ssh-add。只使用/usr/bin/ssh-add与 OS X 兼容的默认设置。它可以与钥匙串无缝协作,所以我所做的只是:

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

很简单。现在密码永久存储在我的钥匙串中,我不需要ssh-add -k每次重启 Mac 时都去执行这个操作。

相关内容