Cloudflare宣布将OPKSSH(OpenPubkey SSH)代码库捐赠给Linux基金会旗下的OpenPubkey项目,推动这一创新方案全面开源。OPKSSH通过将OpenID Connect(OIDC)单点登录(SSO)技术与SSH协议深度结合,重构传统SSH密钥管理模式。

OPKSSH的核心机制

  1. 从ID Token到PK Token
    • 传统OIDC流程中,身份提供商(如Google、Azure)颁发的ID Token仅包含用户身份信息(如邮箱),不含公钥
    • OpenPubkey协议在ID Token中嵌入用户公钥,生成PK Token,使其兼具身份认证与密钥绑定功能,无需修改现有OIDC协议。
  2. SSH协议的“无侵入”集成
    • 动态密钥生成:用户执行opkssh login后,工具自动生成短期有效的SSH密钥对(默认24小时失效),并将PK Token嵌入SSH公钥的证书扩展字段,通过标准SSH协议传输至服务器。
    • 服务端验证革新:SSH服务器通过AuthorizedKeysCommand调用OpenPubkey验证器,直接解析PK Token中的身份信息(如邮箱),替代传统静态公钥白名单。

OPKSSH结合身份提供商的MFA(多因素认证),实现SSH访问的细粒度控制,满足金融、医疗等行业合规要求。 PK Token中的身份信息(如邮箱、组织)为访问日志提供结构化数据,便于溯源异常行为。

官网消息来源:https://blog.cloudflare.com/open-sourcing-openpubkey-ssh-opkssh-integrating-single-sign-on-with-ssh/

源代码:https://github.com/openpubkey/opkssh