我正在制作一台新的 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>