【发布时间】:2016-02-09 08:08:18
【问题描述】:
考虑您有一个要备份的 SSH 密钥对的情况。
选择 A:将 id_rsa 文件以二维码形式存储在一张纸上的保险箱中。
选择 B:使用 GPG(对称)加密 id_rsa 文件,使用 31 个字符的随机混合大小写字母数字密码,将 QR 码形式的密码放在保险箱中的一张纸上,然后将 id_rsa.gpg 文件留在任何人都可以看到的一目了然。 (这样做的好处是 QR 码需要存储的字节少得多,并且可以打印得更紧凑)。用于选项 B 的加密命令是:
gpg -c --force-mdc --s2k-mode 3 --s2k-count 65011712 --output id_rsa.gpg id_rsa
选项 B 是否可以接受?如果不是,将密码更改为超过 31 个字符是否可以接受?如果可以接受,有没有办法描述选择 B 的风险有多大?假设 SSH 密钥本身有一个空密码。谢谢!
(编辑:正如 cmets 中所指出的,公开存储 id_rsa.gpg 文件的愿望是确保可以在很多地方存储大量副本,这样我们就不用担心丢失它的副本并且不用担心这些存储位置中的每一个都是安全的)
(编辑 2:我还想到,如果选项 B 令人满意,那么选项 B 将是存储 SSH 密钥对和常规非对称 GPG 密钥对的好方法)。
【问题讨论】:
-
如果您这样做,最好保留该密钥库文件的多个副本,因为它不能再仅从一张纸上恢复(以防硬盘崩溃)。
-
另外,为什么 SSH 密钥的密码是空的?您的方案不完全等同于使用密码保护它吗?为什么不直接使用那个功能呢?
-
谢谢,是的,这正是将 ir_rsa.pub 和 id_rsa.gpg 存储在大量公共场所的原因,这样一张纸就足以恢复 SSH 密钥对。
-
OTOH,丢失 SSH 密钥并不是什么可怕的问题。您总是可以生成并安装一个新的(前提是您仍然有某种方式可以访问服务器,而这种方式可能会很不方便,因为您很少需要它)。我宁愿创建三个不同的密钥,也不愿拥有三个备份(这样,您可以单独撤销它们)。
-
我的理解是,如果我直接在 SSH 密钥上使用 31 个字符的随机混合大小写字母数字密码短语,这将比我通过 GPG 使用相同的密码更容易暴力破解,因为用于从密码生成 GPG 密钥的大量加盐迭代,优于使用 SSH 密码短语的方式。
标签: security encryption ssh ssh-keys gnupg