为啥 macOS 非应用市场安装的应用可以读取 .ssh 目录下的密钥 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PqgpNgA0wk
V2EX    macOS

为啥 macOS 非应用市场安装的应用可以读取 .ssh 目录下的密钥

  •  
  •   PqgpNgA0wk 2024-11-08 22:44:10 +08:00 2688 次点击
    这是一个创建于 385 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    image.png

    15 条回复    2024-11-10 08:14:21 +08:00
    moudy
        1
    moudy  
       2024-11-09 00:18:12 +08:00 via iPhone
    这就是最传统的可执行程序的逻辑啊
    dilidilid
        2
    dilidilid  
       2024-11-09 00:24:21 +08:00
    不然呢,你的.ssh 目录就是用户可读的权限呀。所以一概建议重要设备上的 ssh 密钥加上 passphrase ,然后每次启动之后 ssh-add 进去。如果嫌麻烦可以加到 keychain 里去自动挂载
    huoshen
        3
    huoshen  
       2024-11-09 00:26:41 +08:00
    @dilidilid 请问 keychain 自动挂载是什么意思?
    bao3
        5
    bao3  
       2024-11-09 03:31:02 +08:00
    你放在 home 目录下的文件,不就是要供你自己打开程序来读取嘛。不光能读 .ssh , 那些什么 .bashrc ,.zshrc 以及什么 documents 、downloads 都可以读。
    简单来说,你要确保你打开的程序是可信的。
    Irilsy
        6
    Irilsy  
       2024-11-09 04:11:19 +08:00   2
    建议在生成 key 的时候设置密码( passphrase),然后用 `ssh-add --apple-use-keychain` 存进 icloud keychain ,每次开机的时候 `ssh-add --apple-load-keychain` 把所有的 passphrase 导入 ssh-agent 中就行,这时候 passphrase 都是保存在内存中的了,不怕读取了,app 能读到的私钥都是加密的。
    lovestudykid
        7
    lovestudykid  
       2024-11-09 06:41:42 +08:00   1
    搞不太懂苹果的权限逻辑,好像对 Documents/Downloads 这些文件夹有额外的权限
    dilidilid
        8
    dilidilid  
       2024-11-09 07:52:06 +08:00   1
    @lovestudykid 可能在苹果看来这些 User Folders 属于普通用户会使用的文件夹需要专门保护一下,.ssh 则属于 Pro 用户才会使用的东西,Pro 用户应该自己对这些组件的安全性负责。

    另外从 Application 的层次这东西也很难保护,你总得给 Terminal 整个 Home 目录甚至全盘的权限很多 workflow 才能正常运行,给了 Terminal 权限等于所有的脚本和命令行程序都能访问,那也没啥区别呀
    ihciah
        9
    ihciah  
       2024-11-09 10:52:37 +08:00 via iPhone
    用 secretive ,私钥放硬件里提不出来,只签名
    ZE3kr
        10
    ZE3kr  
       2024-11-09 11:03:08 +08:00 via iPhone
    1Password 的话可以这个 https://developer.1password.com/docs/ssh/
    ZE3kr
        11
    ZE3kr  
       2024-11-09 11:05:06 +08:00 via iPhone
    也不是,非 App Store 开发者也可以选择开启 sandbox ,开 sandbox 后本质上就跟 iOS Apps 一样隔离了;只不过开发者可以选择不开。App Store 一般情况得开 sandbox
    niubee1
        12
    niubee1  
       2024-11-09 11:08:17 +08:00
    HOME/.ssh 并没有什么特殊权限,你登陆的账号就有权限访问,而你在当前 Session 打开的应用,那不天然就是这个登陆帐号启动的,那不是天然就有权限咯。
    paopaosa
        13
    paopaosa  
       2024-11-09 13:16:35 +08:00
    不上架的 app ,不需要开沙盒模式,用户目录下的东西随便读写。
    PqgpNgA0wk
        14
    PqgpNgA0wk  
    OP
       2024-11-09 21:05:17 +08:00
    @dilidilid @DIMOJANG @bao3 @Irilsy @ihciah @ZE3kr 感谢大家的科普和建议,我这就去研究研究 [抱拳]
    zhyim
        15
    zhyim  
       2024-11-10 08:14:21 +08:00 via iPhone
    .ssh 属于用户,安装的软件也属于用户,他俩同级的当然可以访问了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2698 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:56 PVG 13:56 LAX 21:56 JFK 00:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86