Lobsters | 📄 原文链接 | 2026-10-21 收录

在 macOS 上用 Touch ID 保护 SSH 密钥:三条命令,私钥无法被导出

来源:nmattia.com — 2026-10-19

📋 概述

作者 Nicolas Mattia 给出在 Mac 上配置 SSH 密钥的极简方案:三条命令即可把密钥放进 Secure Enclave,并用 Touch ID 保护,其中包括对 GitHub 的支持。相比传统的 ~/.ssh/id_ed25519 密钥文件,这套做法有三个直接好处:私钥材料无法被导出、从未被显示、也就无法被窃取;每次使用身份时都会弹出指纹确认;文件系统里不再散落公钥私钥文件,也就不存在误删风险。保护对一切 SSH 场景生效,包括 git over SSH。文章后半部分深入「幕后」:用 sc_auth create-ctk-identity 在 Secure Enclave 中创建 CryptoTokenKit 身份(p-256-ne 里的 ne 表示不可导出),用 ssh-add -K -S /usr/lib/ssh-keychain.dylib 让 SSH 通过 keychain 动态库与 Secure Enclave 通信,重启后需要重新提醒一次,用 ssh-add -L 取出以 sk-ecd 开头的公钥句柄注册到 GitHub。代价也很明确:Mac 坏了身份就随之消失,需要在各处重新创建并注册。

🔑 核心要点

💡 金句

No one can steal your identity (well, you can't even give it away willingly since it can't be extracted from the Secure Enclave).
← 返回 Lobsters 首页