我通过安装了 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 年以来就没有更新过,因此也存在安全风险。