前言: 可能是最全yubikey教程 持续更新 欢迎补充
之前老看见有人讨论这个玩意,然后心血来潮收了10个优惠码(100收的),开了个车,买了5个5 NCF、5个5C NFC;加上我一共7个人,我就要了俩5,下面价格加上每个人平摊的转运费和码字钱大概是35元差不多,寄到他们手里在加上十几块快递费就是最终费用了。
这玩意深究的话,说实话我也搞不明白。到处摸索东拼西凑总结的,可能有些地方不对,欢迎大佬指出。
一、初始化
1、首先下载什么什么YubiKey Manager
官网下载:https://www.yubico.com/support/download/yubikey-manager/
下载安装好后以管理员身份打开!就是酱紫的~
然后插入你的5/5c
可以看见有两个栏目, Applications和interfaces
Interfaces
可以配置打开或关闭 YubiKey的功能接口,包括启用和禁用 USB 和 NFC 接口,Yubikey 5 NFC/Yubikey 5c NFC 可以同时 在USB 和 NFC 接口下使用,一般USB用于电脑,NFC用于手机(需要手机具备NFC功能)。 根据你个人来选择了。
Applications
有三个子选项 OTP、FIDO2、PIV
OTP
有2个Slot 插槽,Slot 1厂家出厂默认已经配置了,建议保留,其中有 Yubico OTP 验证。
配置Slot 2 里面有四个选项 分别是Yubico OTP(配合YubiCloud 进行云端身份验证),Challenge-Response(本地身份验证),Static Password(静态密码),OATH-HOTP(OATH 协议)。
根据你需要的设置,如果暂时不懂跳过OTP 设置
FIOD2
设置一下FIOD2 PIN (出厂默认没有设置 FIDO2的PIN码,使用的话只有8次试错机会)
至少含有四个字符 长度应该是不限的
PIV
设置 PIV 功能 的 PIN 码和 PUK码
PIN码
默认PIN为 123456,只有3次试错机会; 可设置的PIN码长度为6-8个字符。
PUK码
PUK 码(PIN 解锁码)用于在PIN码忘记的情况下使用,默认PUK码为12345678;可设置的PUK码长度为6-8个字符。
全部设置好后,只需记住 PIV 的 PIN 码(6-8字符)和 PUK码(6-8字符) ,FIDO2 的PIN 码(4字符及以上)。 PIV PIN码各大网站或应用绑定登录时都会用到。
如果三个密码都遗忘了,可以 Reset 重置这个YubiKey变成“全新”的,但是这个 YubiKey 也将无法再用于登录您之前绑定的各大网站和应用。
先写到这 我研究研究 后面在更新用在服务器上、网站上、电脑上等。。。
二、使用
0、两步验证 totp
众所周知,两步验证其实就是一串 token,你可以备份,导入导出到各种验证软件,如google的authentication,但是手机丢了就很麻烦了,或者是需要重装。虽然最近google authentication更新了云同步,但是似乎并没有那么好用,有个哥们看见同步完成之后,重装手机,同步丢了一大堆验证。
此时yubikey就可以解决这些问题,将google的authentication中的token导出,并且导入到yubikey。当然你可以导入到多个yubikey。
全平台都有应用程序,下载即可。https://www.yubico.com/products/yubico-authenticator/
你在导入的时候可以设置刷新验证码的时候是否需要触摸yubikey
电脑端:
电脑没有摄像头,用手机端导入进去,或者二维码转链接填进去。 导入成功
IOS端:
打开app右上角三个点点一下,然后点Add account扫码
下面那个开关意思就是每次更新验证码,需要手动触摸yubikey。 然后点击Save保存,他会提示让你将yubikey放到nfc区域写入进去。
将谷歌authenticator中的密钥导出然后导入到yubikey
1、打开 Google Authenticator 应用
2、(最新版)点击左上角三个杠,在点击转移账号,继续,全选,导出
3、如果有授权提示,按照授权操作就可以了
4、然后会生成1个或几个不同的QR码的图片
5、这里截屏第一个二维码图片,在微信扫描得到如下内容前缀otpauth-migration://offline?data=
安装转换工具
windows安装node https://nodejs.org/en 自带nmp
安装好后 win+r 输入npm -v 有版本号输出即可继续进行下面的步骤
// clone google-auth OR码工具
git clone https://github.com/krissrex/google-authenticator-exporter.git
cd google-authenticator-exporter
npm install
完成之后,输入 npm run start 指令,会提示输入 totpUri 这个时候将你的二维码内容全部粘贴进去
按照提示操作,选择倒出到文件还是输出到控制台
其中内容中 totpSecret 就是你倒出的账户的对应的私钥
导入到yubikey就不细说了
1、服务器SSH登录
首先哈,我了解到有4种方法 PIV, FIDO2, GPG,OTP 我现在只搞明白了FIDO2、OTP 其他没玩明白 等大佬带飞
FIDO2模式
ssh -V #OpenSSH版本需要大于8.1
a.生成公钥密钥 emmm目前发现有两种方法
a1 OpenSSH-Win64-v9.2.2.0 软件
github https://github.com/PowerShell/Win32-OpenSSH/releases
俺的网盘 https://www.drive.ink/s/MxJsb
安装好之后 win+r cmd
输入
ssh-keygen -t ecdsa-sk
输入你的PIDO2 PIN 大于4位字符那个 输入确定
连接到你的服务器 查看服务器SSH版本
ssh -V #OpenSSH版本需要大于8.1!!!!!!!!!!
cd ~/.ssh/ #进入目录
vim authorized_keys #按i进行编辑 将刚刚.pub文件的内容粘贴进去 按ESC 输入:wq保存退出
vim /etc/ssh/sshd_config #注意 高危操作!
PasswordAuthentication yes 改为 PasswordAuthentication no #关闭密码登录 仅保留密钥登录 测试好了在改 别翻车了!!!
service sshd restart #重启服务
登录 这里用的termius 需要Pro版本 其他软件自行测试
将刚刚那个没有后缀的文件(密钥)导入 输入证书密码 保存
登录
当然 手机用NFC也可以登录!
a2 Termius 里面生成
摸他
点击 Export to host 也可以一键把公钥导入到服务器
OTP 模式
假如不小心地将出厂卡槽 (Slot 1) 的 OTP 信息删除了的话 请滑到底部查看恢复教程!!!
安装Yubikey PAM
//Fedora/EPEL
yum update
yum install pam_yubico
没找到包?
//安装epel源
sudo yum install epel-release
//Ubuntu
sudo apt-get update && sudo apt-get upgrade
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install libpam-yubico
安装好后 在空白的地方触摸一下你的yubikey他会自动输出44位字母
截取前12位 这个字符是你的YubiKey token ID
例如 cccsytocksuzpnlgvbjjozsbvfurebkrcubennvpygqe 前12位cccsytocksuz
创建authorized_yubikeys文件
touch /etc/ssh/authorized_yubikeys
编辑此文件 写入你的YubiKey token ID
编辑文件:
vi /etc/ssh/authorized_yubikeys
格式:
<user name>:<YubiKey token ID1> //只有一个
<user name>:<YubiKey token ID1>:<YubiKey token ID2> //多个Yubikey的情况下 无限叠加
示例:
root:cccsytocksuz //只有一个
root:cccsytocksuz:root:cccsytocxwfs//多个
获取你的API信息 打开 Yubico API Key Signup 网站,输入您的邮箱和 Yubikey OTP 点击 Get API key 进行注册 此信息请保存 以后可能会用到
YubiKey OTP插上你的5/5C 触摸 自动填写 生成好后请妥善保管您的信息
格式为:
API Client ID:12345
API Secret Key:vLaYtMhNrIhXLcZgYy=
编辑系统SSHD文件
vi /etc/pam.d/sshd
添加以下代码:
auth required pam_yubico.so id=<client id> key=<secret key> authfile=/etc/ssh/authorized_yubikeys
例如:
auth required pam_yubico.so id=123456 key=vLaYtMhNrIhXLcZgYy= authfile=/etc/ssh/authorized_yubikeys
编辑远程登录配置文件
vi /etc/ssh/sshd_config
确保以下参数是这样的
UsePAM yes
PasswordAuthentication yes
PermitRootLogin yes
ChallengeResponseAuthentication yes
重启SSHD
sudo systemctl restart sshd
连接服务器:
触摸金属自动登录
当然手机也可以通过NFC登录
2、bitwarden(vaultwarden)密码管理器
没有自建? 自建教程:https://www.uquq.cn/1865
先不管上面 你知道在哪里就行
注册 Yubikey API
假如不小心地将出厂卡槽 (Slot 1) 的 OTP 信息删除了的话 请滑到底部查看恢复教程!!!
(如果有你请跳过此步骤)打开 Yubico API Key Signup 网站,输入您的邮箱和 Yubikey OTP 点击 Get API key 进行注册。
YubiKey OTP插上你的5/5C 触摸 自动填写 生成好后请妥善保管您的信息
如果你是自建的 那么请关闭容器 并添加YUBICO参数 示例
docker run -d --name bitwarden \
--restart unless-stopped \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-e YUBICO_CLIENT_ID=XXXXX \
-e YUBICO_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXX \
-v /www/wwwroot/bitwarden/:/data/ \
-p 4399:80 \
-p 3012:3012 \
vaultwarden/server:latest
点击管理后 输入主密码 进入
鼠标点到框里面 触摸yubikey 自动填充保存 最多支持五个 我设置了买的两个
使用的时候 插入触摸 自动输入密码进入
3、BitLocker
Win电脑一般用这个加密系统盘、数据盘、U盘
首先创建证书 搜索栏 搜索打开即可
此处密码导入证书的时候会用到
导入到yubikey
Applications/PIV/Certificates
输入刚刚设置的证书密码
如果没设置过 勾选直接点击OK 设置过就点输入你设置过的信息
添加成功
右键盘盘符 管理BitLocker 对已经设置了的盘添加 新盘或者未加密的盘 创建的时候选择即可(不会百度)
然后我识别不到智能卡
解决方法:
创建一个文本文件 将下面内容粘贴进去 改扩展名为.reg 保存运行
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\FVE]
"SelfSignedCertificates"=dword:00000001
"CertificateOID"="1.3.6.1.4.1.311.10.3.4"
再次添加 就成功了
使用的时候 输入你设置的PIV PIN (6-8字符)
3、cloudflare
进入点击管理账户 启用2FA 先插入yubikey
输入账户密码
点击确认 输入FIDO2 密码
再次触摸yubikey 完成设置
完成
可添加多个哦 登录的时候验证的密码是FIDO2的密码 4字符以上那个
出厂卡槽 (Slot 1) 的 OTP 恢复
我拿的2做的演示 你们恢复选1即可
会跳转到浏览器 没有跳转手动 https://upload.yubico.com/
点击 Upload 等待完成
有人拼车吗?还能上车吗?还有优惠吗?
写得很全啊 好多教程里都没有ssh登录的详细配置。