首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  信息安全

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

  •  
  •   swchzq · 154 天前 · 2152 次点击
    这是一个创建于 154 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年我买了个 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
        1
    Cu635   154 天前
    去年买 yubikey4 ?去年应该买 yubikey5 了吧?
        2
    agagega   154 天前 via iPad
    其实我希望整个 gpg 都能有一个 gui,插上 yubikey 能直接在 gui 里加解密签名啥的…
        3
    Tink   154 天前 via iPhone
    马一下,现在 yubikey 纯粹用来做 web,认证了...
        4
    imnpc   153 天前
    持有 2 个 yubikey5 一个飞天的 主要用来做 WEB 认证 已经参照国外开源资料完成了 TOTP U2F WebAuthn 认证
    yubikey5 换可以作为 macOS 登录认证设备
        5
    swchzq   153 天前
    @Cu635 当时还没出 5 代, 贼后悔, 今年又买了个 Yubikey 5

    @agagega gpg 不是有 gui 吗
        6
    zwy100e72   153 天前
    尝试了下,启动报错如下:

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

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

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

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