前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >YubiKey使用教程

YubiKey使用教程

作者头像
残浔
发布2023-05-11 19:56:27
3.9K0
发布2023-05-11 19:56:27
举报
文章被收录于专栏:UQUQ

之前老看见有人讨论这个玩意,然后心血来潮收了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区域写入进去。

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

输入

代码语言:javascript
复制
ssh-keygen -t ecdsa-sk

输入你的PIDO2 PIN 大于4位字符那个 输入确定

连接到你的服务器 查看服务器SSH版本

代码语言:javascript
复制
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

代码语言:javascript
复制
//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文件
代码语言:javascript
复制
touch /etc/ssh/authorized_yubikeys

编辑此文件 写入你的YubiKey token ID

代码语言:javascript
复制
编辑文件:
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文件
代码语言:javascript
复制
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
编辑远程登录配置文件
代码语言:javascript
复制
vi /etc/ssh/sshd_config

确保以下参数是这样的
UsePAM yes
PasswordAuthentication yes
PermitRootLogin yes
ChallengeResponseAuthentication yes 
重启SSHD
代码语言:javascript
复制
sudo systemctl restart sshd
连接服务器:

触摸金属自动登录

当然手机也可以通过NFC登录

2、bitwarden(vaultwarden)密码管理器

没有自建? 自建教程:https://cloud.tencent.com/developer/article/2285103

先不管上面 你知道在哪里就行

注册 Yubikey API

假如不小心地将出厂卡槽 (Slot 1) 的 OTP 信息删除了的话 请滑到底部查看恢复教程!!!

(如果有你请跳过此步骤)打开 Yubico API Key Signup 网站,输入您的邮箱和 Yubikey OTP 点击 Get API key 进行注册。

YubiKey OTP插上你的5/5C 触摸 自动填写 生成好后请妥善保管您的信息

如果你是自建的 那么请关闭容器 并添加YUBICO参数 示例

代码语言:javascript
复制
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 保存运行

代码语言:javascript
复制
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 等待完成

验证:https://demo.yubico.com/otp/verify

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年4月3日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、初始化
  • 二、使用
    • 0、两步验证 totp
      • 电脑端:
    • 1、服务器SSH登录
      • FIDO2模式
      • OTP 模式
    • 2、bitwarden(vaultwarden)密码管理器
    • 3、BitLocker
      • 3、cloudflare
        • 出厂卡槽 (Slot 1) 的 OTP 恢复
        相关产品与服务
        云服务器
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档