PuTTY CAC 是 PuTTY 的一个分支,PuTTY 是一种流行的安全外壳 (SSH) 终端。 PuTTY CAC 添加了使用 Windows 证书 API (CAPI)、公钥加密标准 (PKCS) 库或快速身份在线 (FIDO) 密钥的功能,以便使用与存储在上的证书关联的私钥来执行 SSH 公钥身份验证。硬件令牌。
PuTTY CAC 可与多种类型的加密令牌一起使用,例如 Yubikey 和流行的智能卡模型。 “PuTTY CAC”中的“CAC”指的是通用访问卡,这是一种用于美国政府设施的智能卡令牌,是 PuTTY CAC 开发的最初驱动力之一。
PuTTY CAC 由开源社区独立于美国政府维护。
您可以在此处下载最新版本的 PuTTY CAC:https://github.com/NoMoreFood/putty-cac/releases
PuTTY CAC 源代码和二进制文件可免费用于任何目的。许可证可以在这里找到:https://github.com/NoMoreFood/putty-cac/blob/master/code/LICENCE
您可以在“使用 PuTTY-CAC 的 SSH”部分找到有关使用美国政府 ID 管理网站的一组基本说明:
https://playbooks.idmanagement.gov/piv/engineer/ssh/
PuTTY CAC 支持与 PuTTY 相同的命令行选项,并专门针对 PuTTY CAC 提供了一些附加的专用选项。
您可以使用特定的证书指纹或应用程序标识符来代替任何 PuTTY 实用程序的 PuTTY 密钥文件路径。例如:
putty.exe user@host -i CAPI:716B8B58D8F2C3A7F98F3F645161B1BF9818B689
putty.exe user@host -i PKCS:B8B58D8F2C3A7F98F3F645161B1BF9818B689716=C:PKCS.dll
putty.exe user@host -i FIDO:ssh:MyFidoKey
PuTTY 可执行文件(putty.exe、pageant.exe、psftp.exe)支持以下附加命令行选项。大多数这些选项都集中在 Pageant 的操作上,也可以从其用户界面进行设置。一旦设置,这些选项将自动应用于后续执行,除非专门取消设置。过滤选美证书选择对话框的设置也会影响标准 PuTTY 应用程序中的过滤器证书选择对话框:
-autoload
、 -autoloadoff
-savecertlist
、 -savecertlistoff
-forcepincache
、 -forcepincacheoff
-certauthprompting
、 -certauthpromptingoff
-trustedcertsonly
、 -trustedcertsonlyoff
-ignoreexpiredcerts
、 -ignoreexpiredcertsoff
-allowanycert
、 -allowanycertoff
就 PuTTY CAC 而言,证书只是引用私钥/公钥对的便捷方式。如果您想要使用 PuTTY CAC 安全地登录系统并且无权访问证书颁发机构 (CA),则可以对证书进行自签名。相反,PuTTY CAC 可以与托管 SSH 服务器结合使用来实施多重身份验证。这可以通过确保 OpenSSHauthorized_keys 文件仅包含与硬件令牌关联的公钥来完成,无论是按程序还是通过创建所有已颁发证书的索引并通过 OpenSSH 指令(如 AuthorizedKeysCommand)查找它们来完成。
用于与硬件令牌交互的特定代码利用 Microsoft 加密库,而这些库又受系统级 FIPS 设置控制(请参阅 Microsoft 网站)。同样,如果硬件密钥经过 FIPS 认证,则保证用于签名身份验证质询的硬件令牌使用符合 FIPS 的算法;有关详细信息,请参阅硬件令牌的制造商网站。一旦建立 SSH 会话,PuTTY 本身就会使用专有的加密和散列,但尚未经过 FIPS 合规性或认证的评估。