我应该在每个系统上创建一个新的私钥吗?


10

我需要通过SSH从多个设备连接到多个服务器。我想知道是否应该在要连接的每个设备上创建一个新的id_dsa文件,或者将相同的id_dsa文件复制到每个设备是否没有问题。

例如,我有主要的基于Ubuntu的桌面系统和带有ssh的MacBook Pro。我有一个安装了腻子的Windows上网本。我有一个带ConnectBot的Android手机。从这些设备中的任何一个设备上,我可能需要通过SSH连接到许多不同的物理和虚拟服务器。

每个服务器都需要安装我的公钥。另外,我的GitHub和Codaset帐户需要我的公共密钥。

为了简化密钥管理,我正在考虑在所有这些系统上使用相同的私钥。这是常规做法,还是在每个系统上都有一个私钥会更好?

Answers:


3

如果在每个系统上使用相同的公钥,并且私钥受到损害,那么使用该密钥的任何系统(除非有其他限制)都将可以访问。

我相信您使用的是受密码保护的私钥吗?

在我们的管理实践中,我们具有低,中和高安全性的“角色”。每个角色使用不同的密钥。高安全性私钥永远不会传输到外部资产,而在可能丢失/被盗的笔记本电脑上使用等。中低安全性私钥可以部署在更广泛的场景中。

我建议您检查您的使用模式,并从安全角色方面查看产生的原因。获取私钥会对您造成什么损害?

您是否考虑过将SSH私钥放置在无法从其窃取的硬件设备上,从而将密钥的潜在危害排除在非问题之外?

硬件安全模块和智能卡均可用于以安全方式存储SSH私钥,从而使所有加密操作都可以在设备上而不是在操作系统上执行。但是,它们不是万能药,因为在硬件故障的情况下,它们也需要备份硬件设备。


是的,我的密钥受密码保护。感谢您的回答。您已帮助确认我的担心,如果我在所有设备上使用相同的密钥,可能会导致更大的问题。
牛头人2010年

2

绝对应该。您始终可以将所有密钥添加到您的authorized_keys2文件中。我喜欢jeffatrackaid的建议。但是,我会为每个设备使用不同的私钥-为什么不这样做。失去您的Android。很简单,从授权密钥列表中删除密钥。如果不这样做,则必须再次重新生成该级别的密钥。

也就是说,这取决于您如何看待这些资产的风险。显然,您不想丢失密钥,但是有些密钥可能会面临更大的风险,例如github vs您的vps的根。


仅供参考,authorized_keys2自2001年以来已经过时authorized_keys
-OpenSSH

好的,谢谢。我总是禁用SSHv1的低强度密码等点

2

您还记得Debian在生成SSH密钥时有那么小的熵问题吗?那时我很好地吸取了教训。

我有自己的私人密钥来存放自己的东西,例如进入我的个人服务器。我拥有“通用”密钥,可将我带入大多数开发箱,然后为我服务的每个客户削减密钥。

我还保留了有关哪些密钥在哪些计算机上的非常详细的列表,以防万一我不得不急忙更换或删除它们。

对于其他所有严重的问题,我只使用LDAP / PAM,以防万一我不得不急忙删除其他

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.