为什么Google为了安全起见建议从GCE删除SSH密钥?


15

以下对Google文档的引用不再适用。

Google建议从GCE实例中删除SSH密钥,以保护SSH。这对我来说毫无意义。那里的钥匙很安全,对吗?当我取出钥匙时,SSHD停止工作。我可能想念他们的意思。有人可以解释一下这是什么意思吗?

删除SSH主机密钥

请勿在您的实例中使用ssh主机密钥。如下删除它们:

rm /etc/ssh/ssh_host_key
rm /etc/ssh/ssh_host_rsa_key*
rm /etc/ssh/ssh_host_dsa_key*
rm /etc/ssh/ssh_host_ecdsa_key*

2
该文档建议启用它StrictHostKeyChecking,以后建议禁用它。我怀疑它不是经过仔细编辑的文档。我的建议是相信自己的判断,并使用主机密钥,除非有充分的理由不这样做。
aecolley

@aecolley我也注意到了。我已经向他们提交了反馈。会看看他们是否回到我身边。
Martin Prikryl 2014年

1
我在下面进行了详细说明,但可以归结为上下文-您正在查看的页面为创建新映像提供了建议,而不是为一般保护机器提供了建议。我将更新文档,以包含有关何时以及为什么要删除主机密钥的更多详细信息,原因尚不清楚。
本森

Answers:


12

关键的细节是您引用的页面是关于创建新的Compute Engine计算机映像的。具体来说,在创建新的虚拟机映像时,您要确保它不包含任何主机密钥。这样,当克隆映像并将其重构到实际的VM中时,sshd启动脚本将识别出没有主机密钥,并自动生成新的主机密钥。这是理想的,因为让多台计算机使用相同的主机密钥是一个非常糟糕的主意。

因此,在一般情况下,请不要删除主机密钥,但是,如果要创建新映像,这是确保主机密钥和计算机之间存在一对一关系的重要步骤。


1
谢谢。这是有道理的。虽然有些解释会有所帮助。“不要在您的实例中使用ssh主机密钥。” 确实是一个令人困惑的措辞。
Martin Prikryl 2014年

我完全同意-非常感谢您指出这一点。实际上,我已经向文档提交了更新,以澄清我怀疑不久就会推出的措词。
Benson 2014年


13

我能想到的唯一可能原因是,他们想强迫您重新生成新密钥。
由于这些密钥是在您无法访问之前生成的,因此它们可能不受信任。
删除它们并重新启动sshd将为您重新生成密钥。
但是,该文档并没有真正弄清楚。

这纯粹是猜测,最好与他们联系并对此进行澄清。


4
感谢您的答复。我需要SSH到服务器才能重新启动sshd。但是要连接,我需要接受“不受信任的”服务器的主机密钥。因此,我在此会话期间所做的任何操作均不可信任。甚至重新启动sshd。对?
马丁·普里克里

1
我猜主要的担心是由于某种原因,另一个客户会获得与您相同的密钥(注意:这不能使他们访问您的实例,但是更容易使中间人攻击您)。如果您不信任图像的提供者,那么您不应在那里运行任何内容(它们实际上具有物理访问权限)。
骗子

1
IIRC的一些研究表明,某些系统(尤其是嵌入式系统)的熵质量不是很高,它包括一些新启动的虚拟机。当首次启动时生成公共密钥时,例如SSH主机密钥,这些密钥是可以预测的。
HBruijn 2014年

@HBruijn感谢您的评论。但是删除它们并让sshd在重新启动时重新创建它们并不能使它们更好。您将必须上传自己的。但这不在文档中。
马丁·普里克里

1
我已向Google提交了反馈。会看看他们是否回到我身边。
Martin Prikryl 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.