启用服务器端YubiKey SSH认证的核心是让服务端接受并验证FIDO2或PIV公钥签名:需OpenSSH≥8.2、PubkeyAuthentication yes、将sk-ssh-ed25519@openssh.com格式公钥写入authorized_keys并设正确权限,无需额外库。

确认服务端基础支持
目标服务器必须满足以下条件:
- OpenSSH 版本 ≥ 8.2(运行
ssh -V查看;Ubuntu 20.04+、Debian 11+、Fedora 32+ 默认满足) - 已启用公钥认证:
PubkeyAuthentication yes在/etc/ssh/sshd_config中 - 无需额外安装 SK 支持库——OpenSSH 8.2+ 原生解析
sk-ed25519和sk-ecdsa公钥格式 - 确保
sshd已重启:sudo systemctl restart sshd
将 YubiKey 公钥写入 authorized_keys
YubiKey 本身不提供“公钥导出”按钮,但可通过客户端生成后直接提取:
- 在你本地机器上执行过
ssh-keygen -t ed25519-sk -f ~/.ssh/id_ed25519_sk后,会生成id_ed25519_sk.pub - 用
cat ~/.ssh/id_ed25519_sk.pub查看内容,它是一行以sk-ssh-ed25519@openssh.com开头的 Base64 字符串 - 将这整行内容追加到服务器目标用户的
~/.ssh/authorized_keys文件末尾(无需修改格式,OpenSSH 自动识别) - 确保权限正确:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
验证连接与可选增强项
完成部署后,即可测试登录:
- 从客户端执行
ssh -o "IdentityAgent=none" user@server(避免被旧 agent 干扰) - 首次连接时,终端会提示“Touch your authenticator”,此时轻触 YubiKey 金属区即可完成认证
- 如需 PIN 保护(固件 ≥5.4),可在生成密钥时加
-w参数:ssh-keygen -t ed25519-sk -w -f ...,之后每次签名都需先输 PIN - 若服务器禁用了密码登录,建议先保留一个备用会话,防止配置失误锁死自己

















