MacOS:通过brew安装了openssh,如何将密钥添加到钥匙串?

MacOS:通过brew安装了openssh,如何将密钥添加到钥匙串?

我通过安装了 openssh brew install openssh。我将以下内容添加到我的 .profile 中:

export SSH_AUTH_SOCK="~/.ssh/agent.$HOST.sock"
ssh-add -l 2>/dev/null >/dev/null
if [ $? -ge 2 ]; then
  ssh-agent -a "$SSH_AUTH_SOCK" >/dev/null
fi

然后我必须执行以下操作:

ssh-add ~/.ssh/id_ecdsa_sk
Enter passphrase for /Users/myuser/.ssh/id_ecdsa_sk:
Identity added: /Users/myuser/.ssh/id_ecdsa_sk

即使我的 ~/.ssh/config 中有以下内容:

Host *
    IgnoreUnknown UseKeychain
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_ecdsa_sk

(我必须添加 IgnoreUnknown 位 b/c,brew 安装的版本会破坏 UseKeychain 位。)但是现在:我如何连接它,以便将密钥添加到我的钥匙串中?

帮助表示感谢!

答案1

钥匙串集成是 Apple 添加的一项功能,该功能不在 OpenSSH 标准版本中。由于您现在已经安装了 HomeBrew 的标准 OpenSSH 版本,因此您将不再拥有此功能。您已经发现了这一点,因为该UseKeychain选项现在会出现配置错误 - 添加IgnoreUnknown配置只会使错误消息消失,实际上不会恢复任何功能。

为了获得钥匙串集成,您需要卸载 OpenSSH 的 HomeBrew 版本并使用 Apple 提供的版本。

HomeBrew 中的版本在可预见的将来不会集成钥匙串 - 这并不是说他们根本无法使其工作,而是他们发现实施对于项目来说风险太大,因为它是这是一个并非来自 OpenSSH 项目本身的重大变化。您可以阅读该讨论这里

如果您查看该链接,您会发现您仍然可以下载旧补丁,如果您愿意的话可以尝试一下。然而,由于它不再维护,因此存在安全风险。

同样,您可以下载第三方模组来添加钥匙串支持这里。然而,它似乎自 2017 年以来就没有更新过,因此也存在安全风险。

相关内容