SSH密钥必须对它们所用的服务是唯一的吗?

我刚刚创build了一个虚拟服务器(或数字海洋主机的语言,一个“滴”),第一次。 Digital Ocean有一个关于SSH密钥的说明页面https://www.digitalocean.com/ssh_keys告诉我们检查SSH密钥是否存在,然后给出生成新的SSH密钥然后添加它们的说明。 在我的情况下,使用指令给出的命令,我发现我已经有SSH密钥(我猜我是在注册github或heroku时生成的)

问题

1)我是否应该重新使用已有的SSH密钥或生成新的密钥(即,它们必须是我使用的服务所独有的)?

2)说明(下面复制)谈论添加SSH密钥到数字海洋,然后创build一个服务器。 在我的情况下,我添加SSH密钥之前创build了服务器。 这是否会造成我应该注意的任何问题? 我应该销毁服务器(还没有安装任何东西),并创build一个新的,在适当的时候添加SSH密钥?

说明

You can add SSH keys to DigitalOcean which can then be selected during the droplet create process to add the selected SSH keys under the root user. When using SSH keys a root password will no longer be set as SSH keys will be used as the preferred method of access. We do not manage the server after creation, so editing, adding, or removing SSH keys from the SSH interface will not affect any of the stored keys on droplets that you have created. 

SSH密钥不一定是特定的服务。 作为一个良好的普遍做法,它们应该是唯一的目的

例如,你作为一个人可能有几个SSH密钥:
– 您的个人系统的关键
– 您的工作系统的关键
– 你用github / rsync.net / etc的一个键。

在工作中,您可能还有专用于特定程序的键(一个由Puppet使用,一个由备份软件使用)

您应该考虑您的安全性和机密性需求,然后确定是否应该创build新密钥或使用现有密钥。


您粘贴的说明似乎表明,当您创build一个“滴”数字海洋指定的密钥添加到根的authorized_keys文件。 之后,他们不再pipe理authorized_keys文件,所以如果你已经创build了一个没有指定密钥的服务器(或者你想稍后添加/更改/删除密钥),你将需要手动编辑root的authorized_keys文件来进行这些更改。
你不需要销毁/重新创build这个服务器。

我对DigitalOcean一无所知。

你可以使用相同的SSH密钥的一切,但在某些情况下,最好不要。 如果您使用SSH代理转发密钥,那么只要您仍然连接,就有可能在您转发的计算机上拥有root用户权限的用户可以使用您的密钥。 还有什么地方可以使用这个密钥来连接,取决于你使用同一个密钥的地方。 许多人会认为这种担忧是偏执的,但同样也有需要大量关心(甚至偏执狂)的情况。 你知道比我更重要的是什么。

请注意,如果将相同的密钥放入.ssh/authorized_keys文件两次,您有时可能会得到意外的结果。 避免这一点。