如何将一台机器的身份(SSH)转移到另一台机器?

如何将一台机器的身份(SSH)转移到另一台机器?

我正在制作一台新的 Ubuntu 机器作为服务器,打算用它替换装有旧软件的旧机器。

我的问题是:

是否可以将旧机器/服务器的凭证(以 SSH 形式)传输/复制到新机器?

我的目标是,新机器应该取代旧机器,并且在使用 SSH 时,其他人会将其视为同一台机器。换句话说,如果更换了一台服务器(尤其是其操作系统),我希望能够简化网络升级,而无需重置基于 SSH 的凭据。

谢谢

- 更新 -

我的具体目标是仅为服务器传输凭据,但有时我确实使用 ssh 来代替基于密码的登录,并且客户端/服务器连接上的建议也非常有用。

答案1

服务器凭证 — — 构成 SSH 客户端的“指纹”,如果它们不正确的话 — — 实际上只是在中定义的密钥对/etc/ssh/sshd_config

# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

复制这些文件(及其 .pub 变体),复制指向它们的类似配置,重新加载sshd,然后一切就可以正常工作™。

您还需要复制客户端公钥(人们已将其上传到他们的客户端~/.ssh/authorized_keys,但由于这是一个升级,您可能无论如何都会复制这些公钥)。

显然,指纹也依赖于主机名相同,但听起来无论如何你都在这样做。

答案2

您必须将 的内容附加$HOME/.ssh/id_rsa.pub到其他服务器的$HOME/.ssh/authorized_keys。幸运的是,有一个二进制文件;ssh-copy-id。它的用法很简单:ssh-copy-id -i .ssh/id_rsa.pub <user>@<remote.server>

相关内容