HeadlinesBriefing HeadlinesBriefing.com

macOS 上使用 Touch ID 的 SSH 密钥设置指南

Hacker News •
×

本文第一部分展示了一种简单安全的方法,只需三条命令即可在 Mac 上创建 SSH 密钥,并支持 GitHub。第二部分则为好奇的读者解释了幕后发生的事情。

Mac 内置了安全隐私区(Secure Enclave),可以在其中创建极难被窃取的身份凭证。这些身份受 Touch ID 保护,并可用于 SSH 身份验证。与传统的 SSH 密钥文件相比,这种方式有几个优势。私钥材料无法被提取或显示,因此无法被窃取。每次使用该身份时都会提示用户。同时也不会有像 ~/.ssh/id_ed25519 这样的密钥文件占用文件系统,也不存在误删的风险。只要使用 SSH,包括通过 SSH 与 GitHub 进行的 git 操作,都受到这种保护。

快速设置分为三个步骤。第一步,使用 sc_auth 命令创建身份,并通过 Touch ID 确认。第二步,使用 ssh-keychain.dylib 库运行 ssh-add,告诉 SSH 使用该身份,PIN 提示留空即可。SSH 在重启后会忘记此设置,因此必须重新运行。第三步,运行 ssh-add -L 显示公钥,并将其添加到 GitHub。当列出多个密钥时,以 sk-ecdsa-sha2-nistp256 开头的行即为正确的密钥。

配置完成后,git push 等操作会触发 Touch ID 提示。私钥无法被交出,但如果 Mac 丢失或损坏,该身份也会随之丢失,必须重新创建,并在 GitHub 等服务上重新注册。

来源: Hacker News · 由HeadlinesBriefing整理摘要