macOS 下保护 SSH 密钥的一种可行思路

macOS Mojave 加入了新的文件保护机制,应用程序访问某些目录时需要获得授权方能访问。比如 Moeditor 在访问 ~/Pictures/ 下时会访问到 照片图库.photoslibrary,这时会提示「“Moeditor” 想访问您的照片。」,若不允许,则访问时会报错 Operation not permitted,因此推测其手法和 SIP 的机制类似。

目前,我们仍不知道如何自定义被保护的目录,如果您知道欢迎留言或前往 如何自定义被 macOS Mojave 限制访问的目录? – 知乎 回答。但是,我们仍然可以用一些比较 trick 的方法来保护我们的密钥。

我们注意到,~/Pictures/照片图库.photoslibrary 是被保护的目录,那么我们可以在这个目录下建立一个子目录来存放我们的敏感信息,然后通过软链接链接回原本的位置。

mkdir ~/Pictures/照片图库.photoslibrary/ProtectedDirs
mv ~/.ssh ~/Pictures/照片图库.photoslibrary/ProtectedDirs
ln -s ~/Pictures/照片图库.photoslibrary/ProtectedDirs/.ssh ~/

这样,只有拥有照片访问权限的应用程序才能访问到我们的 SSH 密钥。

这个功能如果能够被扩展,用户将能够控制特定的应用程序的文件访问权限,macOS 的安全性将会更加远远领先其它操作系统。

One Reply to “macOS 下保护 SSH 密钥的一种可行思路”

  1. Windows 有这个功能,在 Windows defender 的反勒索保护里,能自由选择受保护的文件夹,只需要点鼠标,不需要输入命令。Linux的桌面好像没有这个功能?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注