很久以前,我使用生成了密钥对ssh-keygen
,并用于ssh-copy-id
启用登录到许多开发虚拟机而无需手动输入密码。我还在 GitHub、GitLab 上上传了我的公钥,类似于使用git@
而不是.git 存储库进行身份验证https://
。
如何重新安装 Linux 桌面并保持所有这些登录正常工作?备份和恢复就~/.ssh/
足够了吗?
答案1
您至少需要备份您的私钥。如果不到处替换您的公钥,就无法重新生成它们。它们的名称通常以 开头id_
,没有扩展名。
可以使用以下命令重新生成公钥:ssh-keygen -y -f path/to/private/key
。如果您设置了任何非默认值,您的用户配置(名为“config”的文件)也可能很有用。
所有这些文件都会通常情况下位于 ~/.ssh 中,但首先检查!
答案2
为了外向的SSH连接,备份你的密钥对就足够了。为了方便起见,您可以只备份~/.ssh
目录并将其恢复到新安装中。
通常备份和恢复该目录就足够了,但可以通过使用 或 中的自定义设置或使用 SSH 代理将密钥存储在其他位置,~/.ssh/config
并/etc/ssh/ssh_config
从ssh-add
任意位置获取要在传出连接上使用的密钥。
如果你有传入SSH 连接,您还可以考虑在 处备份 SSH 主机密钥/etc/ssh/ssh_host_*
。如果您不备份这些内容,则sshd
在新安装上首次启动时将自动生成新的主机密钥,并且任何传入的 SSH 连接都会显示“SSH 主机密钥不匹配,有人可能在做坏事!”错误消息,并且通常会拒绝连接,除非有人删除 SSH 客户端上的旧主机密钥并明确接受新主机密钥。
听起来您的 Linux 桌面系统上可能没有传入的 SSH 连接,因此我提及这一点只是为了完整起见。但在服务器系统上,或者如果您设置了重要的基于 SSH 的自动化设置,则确认更改的主机密钥可能会很麻烦。