V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Osk
V2EX  ›  微软

一口老血, 微软把 ssh-agent 添加的 key 存在注册表里面

  •  
  •   Osk · 2020-06-01 11:44:15 +08:00 · 2226 次点击
    这是一个创建于 1636 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Linux ssh-agent 似乎是存在内存里面的, 重启 ssh-agent 后好像需要重新添加, 应该需要再次确认 passphrase.

    MS 骚一点, "加密" 存在注册表 H.K.C.U 里面.

    Administrators 一行 PowerShell 即可获取未加密的 key.

    7 条回复    2020-06-01 13:47:25 +08:00
    nicevar
        1
    nicevar  
       2020-06-01 11:51:53 +08:00
    内存和注册表里有多大区别, 你用的 PowerShell 读取 key 的程序可能就是之前从 Linux 上内存读取移植过来的.
    Osk
        2
    Osk  
    OP
       2020-06-01 11:55:34 +08:00
    @nicevar 我希望 agent 退出后将我的 key 清除
    geelaw
        3
    geelaw  
       2020-06-01 12:13:23 +08:00
    @nicevar #1 持久化和非持久化的区别。

    回到楼主的问题,不知道楼主说的“加密”是什么,如果是正规的加密的话(比如使用 Windows 密码学 API )其他用户是无法读取的(因为解密密钥是加密者的密码导出的密钥)。

    如果没有可配置选项,那么最好的策略是使用 EFS,这样管理员在没有目标用户的密码时无法访问目标用户的 HKU 子项。
    Osk
        4
    Osk  
    OP
       2020-06-01 12:43:40 +08:00
    @geelaw 解密用的是 Data Protection API.

    保存的注册表是 H.K.CU\Software\Openssh, 这个分支只有 SYSTEM 和 Administrators 有访问权限. 当前用户和其它没提权的用户都无法读取.
    M3ng
        5
    M3ng  
       2020-06-01 13:03:47 +08:00 via iPhone
    win 的 admin 等同于设备的主人
    mrcn
        6
    mrcn  
       2020-06-01 13:20:58 +08:00
    @M3ng 很欣赏这种设计,设备的所有者应当要有能想怎么来就怎么来的权利,只要自己承担后果就好了。
    现在各种手机喜欢搞各种限制,美其名曰为用户好,有种花钱只是买了使用权的错觉。
    geelaw
        7
    geelaw  
       2020-06-01 13:47:25 +08:00
    @Osk #4 既然用了 DP API 就说明结果是加密的,解密必须需要所有者的密码。其他用户即使能看到内容也只是密文。

    不清楚 HKCU\Software\OpenSSH 的访问权限的设置问题,可能是因为这一块是 ssh-agent 服务管的,所以当前用户不需要读取。这应该看作一个“防手贱”的设定,因为当前用户总是可以查看和编辑自己的 ntuser.dat 。

    我说的“用了 EFS 就无法在没有密码的情况下访问 HKU 子项”是因为那种情况下 ntuser.dat 是加密的,和 ACL 没关系。

    @M3ng #5 @mrcn #6 这个说法很成问题,管理员并不是什么都可以做得到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:27 · PVG 03:27 · LAX 11:27 · JFK 14:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.