You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下能否通过FIDO2/WebAuthn实现SSH身份认证?

可行性说明

完全可行。OpenSSH从8.2版本开始原生支持FIDO2/WebAuthn身份认证,Ubuntu 20.04 LTS及以上版本默认搭载的OpenSSH版本已满足要求,无需依赖第三方工具就能实现用FIDO2硬件密钥替代传统密码或SSH密钥对的更安全认证方式。

所需工具
  • FIDO2硬件密钥:符合FIDO2标准的设备,比如YubiKey 5系列、Google Titan Security Key、Feitian ePass等。
  • OpenSSH客户端/服务器:Ubuntu默认自带,需确保版本≥8.2(可通过ssh -V和sshd -V命令检查)。
  • libfido2:部分场景下用于支持密钥生成,Ubuntu可通过包管理器安装(sudo apt install libfido2-1)。
配置步骤

客户端(Ubuntu)

  1. 检查并更新OpenSSH客户端:

    ssh -V
    # 版本低于8.2时执行更新
    sudo apt update && sudo apt install openssh-client
    
  2. 生成FIDO2 SSH密钥对:
    运行命令生成绑定FIDO2密钥的ed25519-sk类型密钥(也可选ecdsa-sk):

    ssh-keygen -t ed25519-sk
    

    按提示插入FIDO2密钥、触摸密钥确认按钮,设置密钥存储路径(默认~/.ssh/id_ed25519_sk),推荐设置密钥保护密码。

  3. 上传公钥到目标服务器:

    ssh-copy-id -i ~/.ssh/id_ed25519_sk.pub your-user@server-ip
    

服务器(Ubuntu)

  1. 检查并更新OpenSSH服务器:

    sshd -V
    # 版本低于8.2时执行更新
    sudo apt update && sudo apt install openssh-server
    
  2. 修改SSH配置文件:
    编辑/etc/ssh/sshd_config,确保以下配置项正确:

    sudo nano /etc/ssh/sshd_config
    

    确认内容:

    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2
    # 可选:FIDO2配置正常后,可禁用密码登录增强安全
    # PasswordAuthentication no
    
  3. 重启SSH服务生效:

    sudo systemctl restart sshd
    
测试登录

插入FIDO2密钥,执行登录命令,按提示触摸密钥完成认证:

ssh -i ~/.ssh/id_ed25519_sk your-user@server-ip
额外提示
  • 多客户端共用同一FIDO2密钥时,只需在每个客户端生成对应密钥对,上传公钥到服务器即可。
  • 生成驻留密钥(ssh-keygen -t ed25519-sk -O resident)可从FIDO2密钥导出公钥到其他客户端,无需重新上传。
  • 确保服务器防火墙允许22端口的SSH连接。

内容的提问来源于stack exchange,提问作者Brett Sutton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:27:17