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

2019-05-19 23:31:07 +08:00
 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

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

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

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

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

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

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

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

https://www.v2ex.com/t/565640

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

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

© 2021 V2EX