将SSH服务器密钥移至新服务器的过程


9

即将将服务器移至新数据中心中的新硬件,这当然意味着新的IP。

将SSH密钥从原始服务器移至新服务器的正确过程(如果有的话)是什么,以便连接的客户端不会收到任何警告或必须再次接受任何东西?

考虑到IP在变化,是否有可能?

我必须移动哪些文件?我假设所有的ssh_host_ *文件。

从RHEL 5迁移到Ubuntu 10.04。

Answers:


8

您可以轻松地将密钥从当前服务器移至新服务器。您只需要确保他们进入相同的位置并拥有相同的权限即可。

不过,理想情况下,出于安全考虑,您应该趁机创建新密钥并更新客户端密钥。


2
我忘了补充一点,当您的用户连接到新主机时,他们可能会收到一条警告,告知他们他们的knownhosts文件中已经有一个主机,该主机与要验证的密钥相匹配。这意味着他们将必须删除其已知主机文件中的条目。你无法解决这个问题。
麦克,

1
因此,如果用户可能仍然会收到警告,那么移动键有什么意义吗?
Daniel Huckstep 2011年

1
用户将得到警告。在中间攻击消息中将是一个人。它看起来很吓人,但是如果您从客户端删除know_hosts,它们会收到不太吓人的消息。我不知道某种提示。
egorgry 2011年

5

1)如果sshd配置文件存储在/ etc / ssh /下,则需要复制所有这些文件。您将在此处找到sshd配置以及主机密钥对。

确保您也正确复制了权限!sshd只会忽略没有得到适当保护的密钥。(同样好,因为不受保护的私钥是一个非常糟糕的主意。)

2)如果您已经添加了受信任的远程主机的公钥,并且不再需要密码即可登录,则还必须复制该信息,以使自动登录现在可以再次工作。此信息通常存储在/home/-account-/.ssh/中(在authorized_keys下)。同样,不要忘记这里的权限。


关于IP地址更改,假设远程客户端实际上看到IP更改(您没有任何反向代理或任何东西),那么否,它们将要求用户再次接受证书。(由于在远程客户端的known_hosts文件中,服务器的IP和服务器的证书存储在一起),更糟的是,如果将该IP地址分配给另一台SSH服务器,它们甚至可能被警告中间人攻击。

因此,只需在新服务器上使用相同的(外部)IP地址就可以了。


0

您没有提到您的操作系统。我可以肯定地说,RHEL主机的服务器密钥存储在/ etc / ssh中。只需完整复制该目录即可。然后,您需要弹回sshd /重新启动该框。

我相信,只要您通过相同的DNS名称进行连接,就不会收到警告。即使有了新的IP。


克里斯托弗·卡雷尔(Christopher Karel)


添加了有关操作系统的说明
Daniel Huckstep 2011年

1
是的,/ etc / ssh是您想要的目录。我只推荐ssh_host *键。不要移动配置文件。而且,为了安全起见,您将需要备份目标位置。
Christopher Karel
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.