
起因是试用了下腾讯出的 ugit,然后在设置界面里看到了本机 ssh 密钥列表,这是不是意味着非应用市场安装的应用可以在没有全盘读取权限时也能读取到这些私密文件,莫非 config 文件也能读,感觉不太了..

1 moudy 2024-11-09 00:18:12 +08:00 via iPhone 这就是最传统的可执行程序的逻辑啊 |
2 dilidilid 2024-11-09 00:24:21 +08:00 不然呢,你的.ssh 目录就是用户可读的权限呀。所以一概建议重要设备上的 ssh 密钥加上 passphrase ,然后每次启动之后 ssh-add 进去。如果嫌麻烦可以加到 keychain 里去自动挂载 |
4 DIMOJANG 2024-11-09 02:03:49 +08:00 |
5 bao3 2024-11-09 03:31:02 +08:00 你放在 home 目录下的文件,不就是要供你自己打开程序来读取嘛。不光能读 .ssh , 那些什么 .bashrc ,.zshrc 以及什么 documents 、downloads 都可以读。 简单来说,你要确保你打开的程序是可信的。 |
6 Irilsy 2024-11-09 04:11:19 +08:00 建议在生成 key 的时候设置密码( passphrase),然后用 `ssh-add --apple-use-keychain` 存进 icloud keychain ,每次开机的时候 `ssh-add --apple-load-keychain` 把所有的 passphrase 导入 ssh-agent 中就行,这时候 passphrase 都是保存在内存中的了,不怕读取了,app 能读到的私钥都是加密的。 |
7 lovestudykid 2024-11-09 06:41:42 +08:00 搞不太懂苹果的权限逻辑,好像对 Documents/Downloads 这些文件夹有额外的权限 |
8 dilidilid 2024-11-09 07:52:06 +08:00 @lovestudykid 可能在苹果看来这些 User Folders 属于普通用户会使用的文件夹需要专门保护一下,.ssh 则属于 Pro 用户才会使用的东西,Pro 用户应该自己对这些组件的安全性负责。 另外从 Application 的层次这东西也很难保护,你总得给 Terminal 整个 Home 目录甚至全盘的权限很多 workflow 才能正常运行,给了 Terminal 权限等于所有的脚本和命令行程序都能访问,那也没啥区别呀 |
9 ihciah 2024-11-09 10:52:37 +08:00 via iPhone 用 secretive ,私钥放硬件里提不出来,只签名 |
10 ZE3kr 2024-11-09 11:03:08 +08:00 via iPhone 1Password 的话可以这个 https://developer.1password.com/docs/ssh/ |
11 ZE3kr 2024-11-09 11:05:06 +08:00 via iPhone 也不是,非 App Store 开发者也可以选择开启 sandbox ,开 sandbox 后本质上就跟 iOS Apps 一样隔离了;只不过开发者可以选择不开。App Store 一般情况得开 sandbox |
12 niubee1 2024-11-09 11:08:17 +08:00 HOME/.ssh 并没有什么特殊权限,你登陆的账号就有权限访问,而你在当前 Session 打开的应用,那不天然就是这个登陆帐号启动的,那不是天然就有权限咯。 |
13 paopaosa 2024-11-09 13:16:35 +08:00 不上架的 app ,不需要开沙盒模式,用户目录下的东西随便读写。 |
14 PqgpNgA0wk OP |
15 zhyim 2024-11-10 08:14:21 +08:00 via iPhone .ssh 属于用户,安装的软件也属于用户,他俩同级的当然可以访问了 |