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

2019 年 5 月 19 日
 swchzq

去年我买了个 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 客户端有:

欢迎 Star, PR, Issue

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

11577 次点击
所在节点    YubiKey
24 条回复
Cu635
2019 年 5 月 20 日
去年买 yubikey4 ?去年应该买 yubikey5 了吧?
agagega
2019 年 5 月 20 日
其实我希望整个 gpg 都能有一个 gui,插上 yubikey 能直接在 gui 里加解密签名啥的…
Tink
2019 年 5 月 20 日
马一下,现在 yubikey 纯粹用来做 web,认证了...
imnpc
2019 年 5 月 20 日
持有 2 个 yubikey5 一个飞天的 主要用来做 WEB 认证 已经参照国外开源资料完成了 TOTP U2F WebAuthn 认证
yubikey5 换可以作为 macOS 登录认证设备
swchzq
2019 年 5 月 20 日
@Cu635 当时还没出 5 代, 贼后悔, 今年又买了个 Yubikey 5

@agagega gpg 不是有 gui 吗
zwy100e72
2019 年 5 月 20 日
尝试了下,启动报错如下:

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

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

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

@Cu635 是啊
swchzq
2019 年 5 月 20 日
@zwy100e72 PIV 的证书可以随便生成, 生成完用 ssh-add -L 就可以看到你的公钥, 可以随时换证书, 但是如果你害怕丢了 Yubikey 可以先用 OpenSSL 之类的生成好证书备份妥善之后再导入 Yubikey
zwy100e72
2019 年 5 月 20 日
谢谢。我一直以为 这个 agent 是消费者,没想到其实是生产者;关于证书这部分,其实公司开发环境都是弱密码登陆的,用 yubikey 单纯图个方便
zwy100e72
2019 年 5 月 23 日
终于配置好了。参考了多个地方,生成证书这块有 handbook 可以看,证书生成好之后需要导入到用户证书管理中才行。剩下的就是点击右键菜单,给各种环境配置 agent
swchzq
2019 年 5 月 23 日
@zwy100e72 不是用 yubikey 吗? 用的是 windows 的用户证书?
zwy100e72
2019 年 5 月 23 日
@swchzq 用的是 yubikey,但是不把证书加载到用户证书中的话 agent 不请求 PIN,ssh-add -L 也没有结果
swchzq
2019 年 5 月 23 日
@zwy100e72 奇怪...正常来说插入 yubikey 后系统应该会自动加载里面的证书...你是用 rsa 还是 ecc 的证书, windows 默认不会枚举 ecc 的证书, rsa 应该没问题, 我试过几台电脑都不用自己加证书
zwy100e72
2019 年 5 月 23 日
@swchzq 我用了一天感觉右下角弹窗太吵了...工作时间不方便弄,能不能麻烦你留一下需要收集啥,我回家后验证下
zwy100e72
2019 年 5 月 23 日
是 rsa 证书吧,我证书上有 PIN 保护,不知道这个有没有影响
zwy100e72
2019 年 5 月 29 日
一周过去了。WSL / CLion / Git Bash / Windows SSH / Visual Studio Code 等场景配置了一圈,楼主写的这个工具真的是太好用了。楼主愿意的话留个捐款方式,我请你喝两杯咖啡。
swchzq
2019 年 5 月 30 日
@zwy100e72 哈哈,谢谢,可以邮箱联系我交流交流,我 github 的个人信息里有邮箱

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/565640

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX