我将使用 PuTTY 从我老板的计算机(Win 10)连接到我的一台服务器。为此,我将使用我的私钥。之前/之后我应该做些什么来防止我的钥匙被盗?
我的计划是:
- 安装腻子
- 向其中添加 priv_key 文件
- 连接
- …
- 卸载 PuTTY
- 删除 priv_key
我将使用 PuTTY 从我老板的计算机(Win 10)连接到我的一台服务器。为此,我将使用我的私钥。之前/之后我应该做些什么来防止我的钥匙被盗?
我的计划是:
更安全的替代方法是创建用于此目的的新密钥对。
现在你老板的电脑可以连接到服务器了。完成后,您可以删除服务器上的密钥。这样,您自己的密钥就不会离开您的计算机,而您老板的密钥仅在短时间内有效。
一个好的解决方案是将密钥放在专用硬件设备上,该设备将执行所有加密操作,甚至不会向主机透露密钥材料。您可以使用OpenSC支持的任何 PKI 卡、OpenPGP 智能卡(GnuPG 和 OpenSC 都支持)或 Yubikey(在这种情况下,其行为类似于 OpenPGP 卡)。
对于支持 OpenSC 的卡,安装 OpenSC 并告诉 OpenSSH 使用它:
ssh -I /usr/lib/opensc-pkcs11.so user@example.com
对于 GnuPG,您可以使用 GPG 代理作为 SSH 代理,通过它公开卡的密钥。请注意,除非您需要密码/PIN 缓存,否则我建议您使用 OpenSC over GPG。
在 Windows 上,您应该使用卡的微型驱动程序(微软如何称呼 OpenSC 等软件)——只要您允许系统在线搜索驱动程序,它们中的大多数都可以自动下载。如果没有找到官方的微型驱动程序,您可以使用包含通用微型驱动程序的 OpenSC 的 Windows 版本。请注意,对于 OpenPGP 卡,有一个比 OpenSC 更好的第三方微型驱动程序(事实上,我没有运气让 OpenSC 的微型驱动程序与 OpenPGP 卡一起工作,即使 PKCS11 库工作良好,证明 OpenSC 正在与卡通话)。
一旦安装了微型驱动程序,软件将能够使用系统的标准 Crypto API 与卡对话(该卡与用户证书存储中的任何其他证书一样)。PuTTY-CAC就是这样一个可以利用这些证书(和卡)的程序,它包括 PuTTY 本身以及 Pageant,PuTTY 的 SSH 代理等价物。如果在 Cygwin/MSYS 下,您可以使用ssh-pageant
将正在运行的 Pageant 转换为标准可以使用的 SSH 代理ssh
(CAPI 和 SSH 之间的直接桥接会更好,但还没有这样的东西)。