这个应该算是Yubikey的进阶用法了。虽然我的Yubikey是打折时白菜价买的,但我也不想它只被用来做2步验证用。
A.给Yubikey设置一个Fido2的PIN
- 首先要在windows里安装yubikey manager。
下载地址是:https://www.yubico.com/support/download/yubikey-manager/ - 安装好后,进入程序,插上yubikey
- 进入application ->fido2,设置好PIN
B. 生成FIDO key
- 这里要用到Putty-CAC,它是Putty的一个分支,添加了增加了使用Windows证书API(CAPI)、公钥密码学标准(PKCS)库或快速身份验证在线(FIDO)密钥来执行SSH公钥认证的能力。下载地址是:https://github.com/NoMoreFood/putty-cac
- 打开Putty CAC,进入connection->SSH->Certificate->FIDO Tools
- Key Algorthm选择ssh-ed25519, 然后Create Key
- 按create key后,windows会弹出确认框,OK确认
- 出现第二个确认框,继续OK
- 这里输入前面在Yubikey Manager里设置好的PIN
- 手指按Yubikey确认
- 在弹出窗口按Yes,这就把新生成的可以导入了当前Putty session
C.配置服务器端openssh
首先说明一下,我服务器端使用的是Ubuntu22.04,Openssh 版本8.9
- 接着上面的步骤,回到certificate页面,点击copy to clipboard
- 这样我们的剪贴板里就有了一个下面格式的key
sk-ssh-ed25519@openssh.com AAAAGn*****************************************************************************************************= FIDO:ssh: ssh:
- 登录服务器,将上面key黏贴到下面这个文件里
~/.ssh/authorized_keys
所有的配置就到此结束了。
什么,你觉得还好?那使用过程也很复杂
D.使用Yubikey登录远程服务器
- 在电脑上插入Yubikey
- 打开Putty-CAC
- 输入服务器的IP或机器名
- 进入connection->SSH->Certificate->FIDO Tools,点击Import keys,弹出窗口点OK
- 输入PIN
- 导入成功窗口弹出,点OK
- 回到certificate页面,点击set FIDO key。弹出窗口点OK
- 这时应该是下面这个界面,点击OPEN,进行连接
- 输入用户名按回车后,会跳出下面这个窗口,手指按Yubikey进行确认
- 这样就登录了远程服务器。
[…] 在尝试了使用Yubikey无密码登录SSH的复杂操作后,我又用Yubikey登录了我的windows系统。 […]
Good! THX!