前些日子买了个 YubiKey,今天依旧不想看代码(盯着一百行代码看了俩星期了,有点抑郁),那么就继续学习新知识。
呐,就是这个像 U 盘一样的东西。据说有三种工作模式:
- 第一种是“键盘模式”,摸一下就生成一个动态密码 / 自动输入固定密码,我觉得没啥用,而且一摸就会产生一串神秘代码,就直接拿
yubikey-personalization-gui
这个东西给干掉了(囧) - 第二种是“U2F 模式”,两步验证,可以理解为上古时期的“盛大密保”/“将军令”、现在的“短信验证码”/“Google 身份验证器”,不需要做什么配置,能用的话插上去、摸一下就好了
- 第三种是“GPG 智能卡模式”,可以存三个 GPG 密钥。
三种模式同时工作,互不影响。其中第一种模式还可以区分 “短摸” 和“长摸”,能分别设置不同的密码生成模式。
Yubikey
+- HID
| +- U2F
| +- OTP (2 Slots)
| +- Yubico OTP
| +- OATH TOTP / HOTP
| +- Static Password
|
+- Challenge-Response (Share Slots w/ OTP)
| +- Yubico OTP
| +- HMAC-SHA1
|
+- Smart Card
+- PIV (18 Slots, 4 main slots)
+- OpenPGP (3 Slots)
总之就是上面的一大堆功能啦,官网都说不清楚……
使用GPG密钥免密码登录服务器
可以看这篇重新整理过的文章。每一步操作做啥都写清楚了。
作为二次验证设备
目前已经有一些网站支持YubiKey作为二次验证设备登录了,比如在Google、Github、Dropbox都可以使用。这样就不用每次输入短信验证码啦,只需要把Key插上去、摸一下,就能通过验证。
并且,如果你买的是YubiKey 5C NFC的话,它的NFC是支持给iPhone用的。遇到需要刷二次验证设备的时候,将YubiKey靠近iPhone头部,就能通过验证了。
有些网站不支持物理的二次验证设备,只支持类似于「Google身份验证器」那样的设备。这个时候,我们可以在手机上下载YubiKey,然后扫描给出的设备绑定二维码,再将YubiKey靠近iPhone头部,以将信息刷给YubiKey。注意这里是刷给YubiKey,也就是说,这个验证信息是存储在YubiKey里面的。在其他手机上用YubiKey APP刷当前这个YubiKey,也是可以拿到验证码的。
给Github提交添加签名
可以按照这个官方教程来。
想Commit自动签名的话,小小设置一下:
git config --global user.signingkey XXXXXXXX
git config --global commit.gpgsign true
觉得目前看来更多是为了装13……
本地二次认证
即使知道我的sudo密码,也必须插上Key、摸一下才能sudo~
首先,安装u2f-host
。
然后,使用pamu2fcfg -u${USER} > ~/.config/Yubico/u2f_keys
并摸一下,以注册设备。(其实会生成一串神秘代码,格式为<username>:<KeyHandle1>,<UserKey1>
)
最后,来到/etc/pam.d
,如果想在执行sudo的时候加上二次验证,就编辑sudo
,加入auth sufficient pam_u2f.so
。这样输入密码后必须再摸一下才能真正执行。
发表回复