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

又买了个 Yubikey, 为了不亏, 造了个轮子

  •  
  •   swchzq · 2019-05-19 23:31:07 +08:00 · 10739 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年我买了个 Yubikey 4, 想开始提升个人信息安全水平. 结果发现根本不是那么一回事, 我主要在 Windows 10 上工作(配合 WSL), 其中最需要提升安全性的就是 SSH 和 GPG, GPG 还好, SSH 简直是噩梦. Windows 上各工各样的 SSH 客户端, 想配合 Yubikey 工作非常麻烦, 想在 WSL 里用 Yubikey 也非常麻烦. 所以我造了个轮子: WinCrypt SSH Agent( https://github.com/buptczq/WinCryptSSHAgent)

    这个项目基于 Windows 提供的证书管理系统, 不需要安装任何驱动就能够访问智能卡上的证书(Yubikey 需要工作在 PIV 模式). 同时, 这个项目实现了 Windows 上各种各样 SSH 客户端的私有 Agent 协议, 当 SSH 认证时, 客户端将信息发给这个 Agent, 这个 Agent 会通过 Windows 提供的 API 对信息进行签名, 完成认证.

    目前兼容的 SSH 客户端有:

    • Git for Windows
    • Windows Subsystem for Linux
    • Windows OpenSSH
    • Putty
    • Jetbrains
    • SecureCRT
    • XShell
    • Cygwin
    • MINGW
    • ...

    欢迎 Star, PR, Issue

    项目地址: https://github.com/buptczq/WinCryptSSHAgent

    24 条回复    2019-10-09 15:55:12 +08:00
    Cu635
        1
    Cu635  
       2019-05-20 01:03:29 +08:00
    去年买 yubikey4 ?去年应该买 yubikey5 了吧?
    agagega
        2
    agagega  
       2019-05-20 01:26:02 +08:00 via iPad
    其实我希望整个 gpg 都能有一个 gui,插上 yubikey 能直接在 gui 里加解密签名啥的…
    Tink
        3
    Tink  
       2019-05-20 01:50:14 +08:00 via iPhone
    马一下,现在 yubikey 纯粹用来做 web,认证了...
    imnpc
        4
    imnpc  
       2019-05-20 08:34:47 +08:00
    持有 2 个 yubikey5 一个飞天的 主要用来做 WEB 认证 已经参照国外开源资料完成了 TOTP U2F WebAuthn 认证
    yubikey5 换可以作为 macOS 登录认证设备
    swchzq
        5
    swchzq  
    OP
       2019-05-20 10:06:32 +08:00
    @Cu635 当时还没出 5 代, 贼后悔, 今年又买了个 Yubikey 5

    @agagega gpg 不是有 gui 吗
    zwy100e72
        6
    zwy100e72  
       2019-05-20 11:13:03 +08:00
    尝试了下,启动报错如下:

    open \\.\pipe\openssh-ssh-agent: Access is denied.

    另外我想问下,Yubikey PIV 验证证书是可以随便生成的吗,如果我后悔了想换新证书,这里会不会有什么限制?
    hljjhb
        7
    hljjhb  
       2019-05-20 12:44:22 +08:00 via Android
    赞 解决了一大痛点
    yushiro
        8
    yushiro  
       2019-05-20 17:58:41 +08:00 via iPhone
    需要一直插在 usb 上用吗?还是像 putty 的 agent,会缓存 key,第二次用的时候,不需要硬件 key 插在电脑上?
    Cu635
        9
    Cu635  
       2019-05-20 20:21:31 +08:00
    @swchzq
    那你是去年很早就买了么?我也是去年看的,已经有 5 了。
    swchzq
        10
    swchzq  
    OP
       2019-05-20 22:58:35 +08:00
    @zwy100e72 这个情况可能是你开了其他的 agent 把这个命名管道占用了, 或者是单纯的权限不够

    @yushiro PIV 的私钥不能缓存的, 要是能缓存就不安全了, 每次签名计算都是智能卡计算的, 不是电脑算的

    @Cu635 是啊
    swchzq
        11
    swchzq  
    OP
       2019-05-20 23:00:53 +08:00   ❤️ 1
    @zwy100e72 PIV 的证书可以随便生成, 生成完用 ssh-add -L 就可以看到你的公钥, 可以随时换证书, 但是如果你害怕丢了 Yubikey 可以先用 OpenSSL 之类的生成好证书备份妥善之后再导入 Yubikey
    zwy100e72
        12
    zwy100e72  
       2019-05-20 23:14:22 +08:00 via iPhone
    谢谢。我一直以为 这个 agent 是消费者,没想到其实是生产者;关于证书这部分,其实公司开发环境都是弱密码登陆的,用 yubikey 单纯图个方便
    zwy100e72
        13
    zwy100e72  
       2019-05-23 11:48:52 +08:00
    终于配置好了。参考了多个地方,生成证书这块有 handbook 可以看,证书生成好之后需要导入到用户证书管理中才行。剩下的就是点击右键菜单,给各种环境配置 agent
    swchzq
        14
    swchzq  
    OP
       2019-05-23 14:52:04 +08:00
    @zwy100e72 不是用 yubikey 吗? 用的是 windows 的用户证书?
    zwy100e72
        15
    zwy100e72  
       2019-05-23 18:36:23 +08:00 via iPhone
    @swchzq 用的是 yubikey,但是不把证书加载到用户证书中的话 agent 不请求 PIN,ssh-add -L 也没有结果
    swchzq
        16
    swchzq  
    OP
       2019-05-23 18:52:52 +08:00
    @zwy100e72 奇怪...正常来说插入 yubikey 后系统应该会自动加载里面的证书...你是用 rsa 还是 ecc 的证书, windows 默认不会枚举 ecc 的证书, rsa 应该没问题, 我试过几台电脑都不用自己加证书
    zwy100e72
        17
    zwy100e72  
       2019-05-23 21:50:48 +08:00 via iPhone
    @swchzq 我用了一天感觉右下角弹窗太吵了...工作时间不方便弄,能不能麻烦你留一下需要收集啥,我回家后验证下
    zwy100e72
        18
    zwy100e72  
       2019-05-23 21:52:19 +08:00 via iPhone
    是 rsa 证书吧,我证书上有 PIN 保护,不知道这个有没有影响
    zwy100e72
        19
    zwy100e72  
       2019-05-29 22:31:14 +08:00
    一周过去了。WSL / CLion / Git Bash / Windows SSH / Visual Studio Code 等场景配置了一圈,楼主写的这个工具真的是太好用了。楼主愿意的话留个捐款方式,我请你喝两杯咖啡。
    swchzq
        20
    swchzq  
    OP
       2019-05-30 16:39:34 +08:00 via iPhone
    @zwy100e72 哈哈,谢谢,可以邮箱联系我交流交流,我 github 的个人信息里有邮箱
    commoccoom
        21
    commoccoom  
       2019-10-09 11:18:02 +08:00
    有在 Windows 上使用 Yubikey 配置 SSH 登录的教程吗?网上教程大多都是基于 Linux 或者 Mac 的
    swchzq
        22
    swchzq  
    OP
       2019-10-09 13:20:15 +08:00
    @commoccoom emmmm, 网上好像比较少, 有空我写个
    swchzq
        23
    swchzq  
    OP
       2019-10-09 13:55:50 +08:00
    commoccoom
        24
    commoccoom  
       2019-10-09 15:55:12 +08:00
    @swchzq 非常感谢!!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1670 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:49 · PVG 00:49 · LAX 08:49 · JFK 11:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.