1. 准备备份目录
为了避免在 ~/.ssh 原路径下直接操作引发 Git 配置混乱,我们建议在其他地方创建一个干净的备份文件夹:
# 创建备份文件夹并进入
mkdir ~/ssh-backup-repo && cd ~/ssh-backup-repo
# 将现有的 .ssh 文件夹内容全部拷贝进来
cp -r ~/.ssh/ .
2. 初始化 Git 仓库
在备份目录下初始化并进行本地提交:
git init
# (可选) 如果你想忽略某些文件(如 known_hosts),可以创建 .gitignore
echo "known_hosts" >> .gitignore
git add .
git commit -m "backup: initial backup of ssh keys at $(date +%F)"
3. 获取远程 SSH 地址
- 登录 GitHub。
- 点击 New repository。
- Repository name:
my-ssh-backup(或者你喜欢的名字)。 - Public/Private: 务必选择 Private。
- 点击 Create repository。
- 在仓库主页,点击 SSH 选项卡,复制地址(格式如:
git@github.com:username/my-ssh-backup.git)。
4. 关联远程仓库并推送
使用 SSH 协议 地址进行关联:
# 关联远程地址
git remote add origin git@github.com:你的用户名/你的仓库名.git
# 确保分支名为 main
git branch -M main
# 推送数据
git push -u origin main
5. 如何在另一台机器上恢复?
当你需要取回备份时,只需执行:
# 克隆仓库
git clone git@github.com:你的用户名/你的仓库名.git ~/recovered-ssh
# 恢复文件到系统目录
cp -r ~/recovered-ssh/.ssh/* ~/.ssh/
# 修正权限(SSH 对文件权限要求非常严格,否则会失效)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
安全建议
因为私钥是明文存储在远程服务器上,建议你给私钥设置 Passphrase。即使别人拿到了你的 id_rsa 文件,如果没有你设置的这个“二次密码”,他们也无法发起任何 SSH 连接。
原文 https://blog.csdn.net/2301_79518550/article/details/160747637