SSH使用FIDO2 USB进行身份验证

在OpenSSH 8.2中,提供了对FIDO2的支持。这样用户就可以硬件USB密钥证书进行用户认证。这样可以实现简单、有效和安全的SSH认证了。本文我们就尝试一下基于FIDO2的SSH认证,前提是需要一个USB key设备。

[[338872]]

FIDO2

在硬件认证安全领域WebAuthn和FIDO2的发展,他给我们带来了更便捷安全的方法。WebAuthn和FIDO2旨在通过标准化二者之间的通信方式使用安全设备的变得真正容易。

对每一个人来说这都是一个好消息,现在大家可以使用便捷的USB密钥,无需额外的安全知识,即可非常轻松地保护所有身份验证,完全避免网络钓鱼,密码盗窃以及其他恶意攻击的干扰,只需要插入USB密钥,按小按钮/输PIN或者刷指纹,然后重新登录。

虽然之前很多人可能都用过银行的网银,但是由于那是不标准通用的方式,不光要安装各种各样的驱动而且还要必须要特定版本的IE才行。而如果支持了FIDO2则可以被所有OS和任何浏览器所支持,当然包括今天要说的SSH。

截止目前根据有人统计国内也有很多企业加入了FIDO联盟,包括阿里等大企业。

FIDO2分为WebAuthn和CTAP协议,最佳使用场景包括:

  • 在设备上通过浏览器使用设备配置的指纹等生物识别能力进行身份认证;
  • 在设备上通过浏览器使用外置Security key进行身份认证;
  • 在设备上通过另一台设备作为认证器完成身份认证。

结合使用FIDO2和SSH

对广大使用Linux和Mac的技术人员来说,除了浏览器使用最多的要数SSH了。如果可以使用FIDO2密钥通过SSH进行身份验证,那将带来很大方便和安全。为此OpenSSH也放弃一贯对硬件密钥体系的傲慢态度,现在终于支持FIDO(U2F)和FIDO2进行身份验证了,而带有驻留键的FIDO2具有更好的便捷和安全性。流程是USB设备(FIDO2设备不一定是USB,但通常是USB设备)生成一个秘密密钥。密钥要么存储在设备上(称为驻留密钥),要么需要设备支持存储,要么不支持,需要将数据存储在其他位置。

使用USB key设备的好处包括消除网络钓鱼,密码盗窃,身份验证重放以及许多其他攻击。由于设备通过特定领域(服务器地址/URL/等)进行身份验证,因此攻击者无法在另一个站点上重复使用一个站点的身份验证,这使得网络钓鱼无法进行。密码或私钥在设备上并无法复制提取,任何人都不能窃取密码或私钥。唯一可能的攻击是你的USB Key丢了,但是由于设备有PIN密码,并且有错误次数限制,尝试几次错误有,该设备将会锁定实效。

可能有用过Yubikey的同学,使用SSH内置功能好处是不需要特别使用Yubikey,也不需要弄乱Yubikey代理,PIV模式或其他任何其他软件。只需插入任何兼容FIDO2的密钥,即可将其与SSH一起使用。有”驻留键”模式仅在Yubikey 5C和更高版本的FIDO2上有效。

使用方法

在了解了有关设备如何工作的所有不必要的细节之后,准备好将其中一个用于SSH。设置非常简单,基本上只需一两个命令(取决于方法),在客户端和服务器上都运行OpenSSH 8.2,无需安装其他软件。下面我们分常驻密钥模式和非常驻模式的两种方法。

常驻密钥模式

在支持FIDO 2设备的下,使用以下命令生成密钥并将其存储在设备上,支持的密钥类型有”ed25519-sk”和”ecdsa-sk”两种证书类型。

  1. ssh-keygen -t ed25519-sk -O resident -f ~/.ssh/id_ ed25519-sk  
  2. ssh-keygen -t ed25519-sk -O resident -f ~/.ssh/id_ ecdsa-sk 

 

SSH会要求输入PIN码并触摸的设备,然后将密钥对保存在设置目录。

ssh-keygen将生成两个文件,一个称为id_ecdsa _sk,私钥,一个称为id_ecdsa _sk.pub公钥。只需要将该公钥添加到服务器上的authorized_keys即可中。

要将私钥添加到SSH代理,需要将其复制到~/.ssh/目录中,或者(如果在新计算机上并且没有密钥),请运行:

  1. ssh-add -K 

插入设备。就会将密钥添加到SSH代理,然后就将能够连接到服务器。

非常驻密钥模式

非驻留密钥模式与前面模式基本相同,区别之处在于无法ssh-add -K直接从设备加载密钥。和以前一样,运行:

  1. ssh-keygen -t ed25519-sk -f ~/.ssh/id_ ed25519-sk 
  2. ssh-keygen -t ed25519-sk -f ~/.ssh/id_ ecdsa-sk 

SSH会要求输入PIN并触摸设备,然后将密钥对保存在设置的目录。需要手动将密钥对存储在~/.ssh/目录中,并将公钥文件添加到要登录的任何服务器上的authorized_keys。既可以

当尝试登录时,OpenSSH会要求提供PIN并触摸设备。

可以在生成密钥时候设置no-touch-required选项来设置不需要每次都触摸设备,但是启用它并没有取得很好的效果,但是这样不是很安全。

将密钥存储在设备上意味着没有人可以窃取它(设备设置了PIN或其他身份验证方法),但是在连接后,不受信任的计算机仍可以通过SSH会话发送命令。不要从不信任的计算机上用SSH服务器,尤其是在使用SSH转发(此-A选项)时要格外小心,因为服务器随后可能会当做跳板或者代理而访问其他服务器进行身份验证。

非FIDO2设备和非openSSH 8.2客户端

对于不支持FIDO2的其他设备(买不起Yubikey,比如几十块的国产飞天Usbkey),在使用其他ssh客户端,而且ssh版本不是8.2的其实也有一种方法,只是需要下载一个第三方的代理软件WinCryptSSHAgent(github:/ /buptczq/WinCryptSSHAgent)。

WinCryptSSHAgent基于 Windows证书管理系统, 不需要安装任何驱动就能够访问智能卡上的证书.这个项目实现了 Windows 上各种各样 SSH 客户端的私有 Agent 协议, 在发生SSH 认证时, 客户端将信息发给这个 Agent, 这个 Agent 会通过 Windows 提供的 API 对信息进行签名, 完成认证。目前兼容的 SSH 客户端有: Git for Windows、Windows Subsystem for Linux、Windows OpenSSH、Putty、Jetbrains、SecureCRT、Xshell、Cygwin、MINGW等。

启动该代理软件,然后就可以实现用USBKey登陆了。

当然使用该代理软件有个缺点,启动代理认证,完成一次认证后,支持该证书登陆服务器都可以直接登陆,这可会存在一定安全问题。可以通过定期关闭代理以保证安全。

总结

总的来说,OpenSSH对FIDO的支持给我们带来了一种更便捷而且安全的身份认证方式。当然由于这是一个开始,可能还会存在着一些问题和bug,希望各种SSH客户端软件也能及时跟进,内置支持该协议,让大家安全水平都提高一个档次。

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/130558.html<

(0)
运维的头像运维
上一篇2025-02-26 03:32
下一篇 2025-02-26 03:33

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注