我需要通过SSH连接到多个设备上的多个服务器。 我想知道是否应该在每个设备上创build一个新的id_dsa文件,或者如果将相同的id_dsa文件复制到每个设备没有问题。
例如,我有我的主要Ubuntu的桌面系统和MacBook Pro与ssh。 我有一个基于Windows的上网本与腻子安装。 我有一个ConnectBot的Android手机。 从这些设备中的任何一个,我可能需要SSH到几十个不同的物理和虚拟服务器。
每个服务器都需要安装我的公钥。 另外,我的GitHub和Codaset账户需要我的公钥。
为了简化密钥pipe理,我正考虑在所有这些系统上使用相同的私钥。 这是常见的做法,还是每个系统上都有一个私钥更好?
如果您在每个系统上使用相同的公钥,并且私钥被盗用,那么任何使用该密钥的系统,除禁止其他限制外,都将被访问。
我相信你正在使用密码保护私钥?
在我们的pipe理实践中,我们有低,中,高的安全“angular色”。 每个angular色使用不同的密钥。 高安全性私钥永远不会被传输到外部资产,在笔记本电脑上使用,可能会丢失/被盗等。中等和低安全性密钥可以部署在更广泛的场景。
我build议检查一下你的使用模式,看看在安全angular色方面是什么。 获得私钥所造成的损失是多less?
你有没有考虑过把你的SSH私钥放到不能被盗的硬件设备上,把密钥的潜在危害消除掉?
硬件安全模块和智能卡都可用于以安全的方式存储SSH私钥,从而使所有encryption操作都能在设备上执行,而不是在操作系统上执行。 但是,它们不是万能的,因为在硬件故障的情况下,这些也需要备份硬件设备。
绝对是你应该的。 您始终可以将所有密钥添加到您的authorized_keys2文件中。 我喜欢jeffatrackaid的build议。 但是,我会为每个设备使用不同的私钥 – 为什么不呢。 失去你的Android。 很简单,从授权密钥列表中删除密钥。 如果你不这样做,你将不得不再次重新生成这个级别的密钥。
这就是说,这取决于你如何看待这些资产的风险。 显然你不想丢失密钥,但是你可能会冒更大的风险,例如github vs根目录到你的vps。
你还记得Debian在生成SSH密钥时有那么小的熵问题吗? 那时我才学得很好。
我有我自己的私人密钥(S)为我自己的东西,如进入我的个人服务器。 我有我的“全function”键,让我进入我的大部分开发箱,然后切断我服务的每个客户端的密钥。
我还会保存一个非常详细的清单,列出哪些机器上的按键,以防万一我需要快速更换或删除它们。
对于其他所有严重的问题,我只是使用LDAP / PAM,以防我需要快速删除其他人 。