使用Yubikey通过SSH登录VPS
去年在美亚上买了两个YubiKey,一个Nano版和一个5 NFC版,最初只是用来做网站的登录安全密钥的,比如Google,Microsoft等等,后来在V2EX发现了一个帖子在 Windows 上愉快的使用 YubiKey 登录 SSH,但是按照他的方法,从YubiKey上是无法导出private key的,当然这是YubiKey为了安全设置的,但问题是我有两个YubiKey,其中一个就是为了备用的,以便不时之需。本文就是讲在Windows本地生成证书再导入YubiKey,这样就能备份private key以及导入另一个YubiKey了。
本地生成证书
按照之前HTTPS双向认证那篇文章一样,使用OpenSSL,但是这次根证书私钥配置了加密环节
# 创建带密码(foobar)的根证书私钥:
openssl genrsa -aes128 -passout pass:foobar -out root.key 2048
# 创建根证书请求文件:
openssl req -new -out root.csr -key root.key --passin pass:foobar
# 同样后续的参数自己填写,这里不再重复
# 创建根证书:
openssl x509 -req -in root.csr -out root.crt -signkey root.key --passin pass:foobar -CAcreateserial -days 3650
# 创建了一个10年有效期的根证书将证书导入Yubikey
打开YubiKey Manager
点击导入
先导入私钥root.key,会让你输入创建证书时的密码。
再导入证书root.crt即可。反正我是这样的顺序,不知道顺序颠倒是否有问题。
两个YubiKey都导入了,然后再使用WinCrypt SSH Agent配合 Windows 10 再带的SSH客户端即可登录VPS
PS.需要先配置好VPS的密钥登录,公钥使用 WinCrypt SSH Agent的 Show Public Keys 查看 并复制到VPS上的authorized_keys文件即可,这里不再赘述。
参考资料:
https://www.v2ex.com/t/607418
https://stackoverflow.com/questions/4294689/how-to-generate-an-openssl-key-using-a-passphrase-from-the-command-line
评论已关闭