SSH:多个或单个私钥?

我只是想知道在以下情况下最佳做法是什么:
– 工作站 – Windows
– 开发机器 – Debian
– 邮件机器 – Debian
– 生产服务器 – CentOS

  1. 使用单个私钥在所有机器上进行身份validation?
  2. 每台机器使用一个密钥?

第一种方式是否有任何安全隐患?

SSH密钥就像物理密钥一样。 在某些情况下,对于所有的锁都有一个共同的密钥是有意义的。 其他时间没有。 只有你根据你的具体情况做出评估。

这取决于。 考虑到你可以使用密码保护私钥,如果你使用足够强大的密码并保护私钥,那么在所有机器上使用相同的密钥就可以正常工作。 另一方面,我通常在相同的风险类别中使用多个唯一的键。 例如,我使用encryption的USB驱动器上存储的生产服务器的密钥。 我为开发和testing机器使用了不同的密钥。 此外,我不使用SSH密钥授予根访问权限,而是访问我的帐户。

第一种方法的安全含义是,如果密钥被攻破(即攻击者可以获得密钥和密码),那么攻击者可以远程访问所有的系统。 由于权限升级对任何types的系统访问来说都容易得多,所以选项1比选项2风险更大。但是,如果保护密码和私钥,选项2只会提供更好的安全性/降低风险。

我会在每个Windows工作站和Debian开发机器上生成一个密钥。 使用密码短语 将密钥发布到Debian机器和CentOS生产服务器。

putty key工具“PuTTYgen也可以导出OpenSSH格式和ssh.com格式的私钥。为此,请从”转换“菜单中select一个”导出“选项。导出一个密钥的方式与保存密钥的方式完全相同(请参阅第8.2.8节) – 您需要事先input您的密码,如果您要保存一个密码而没有密码,您将会收到警告。

http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter8.html#pubkey-puttygen

去#1。 #2增加的复杂性增加了很less的好处(特别是如果你用强密码encryption你的私钥)。

此外,我应该注意到,我总是build议encryption您的私钥,并且您连接的每台机器都应该有自己的密钥对。 这样,如果你的工作站中有一个被攻破,丢失等等,你可以从你的服务器中取出该机器的公钥,并且不会中断其他工作站的访问。