【Github | Git】如何彻底删除 SSH 密钥公钥:删除本地密钥公钥 删除GitHub密钥公钥
- 第 124 篇 -
Date: 2025 - 09 - 08
Author: 郑龙浩(仟墨)
如何彻底删除 SSH 密钥:从本地到 GitHub 的完整清理指南
文章目录
- **如何彻底删除 SSH 密钥:从本地到 GitHub 的完整清理指南**
- **如何彻底删除 SSH 密钥:从本地到 GitHub 的完整清理指南**
- **第一步:进入 SSH 目录并查看文件**
- **第二步:在目录内删除密钥文件**
- **第三步:清理 SSH 代理中的密钥缓存**
- **第四步:移除 GitHub 上的公钥记录(关键步骤)**
- **第五步:清理相关配置文件**
- **验证清理结果**
- **总结:正确的删除顺序**
如何彻底删除 SSH 密钥:从本地到 GitHub 的完整清理指南
需要废弃一对 SSH 密钥时,简单的文件删除并不够彻底。密钥可能残留在代理缓存或远程平台中,留下安全隐患。
如何删除呢,下面是操作步骤
第一步:进入 SSH 目录并查看文件
首先进入 SSH 密钥目录并查看所有文件:
cd ~/.ssh
ls -la
常见的密钥文件对通常成对出现:
默认文件(私钥、公钥)如下:
id_rsa
(私钥)id_rsa.pub
(公钥)
我后来创建的私钥、公钥如下:
new_IDrsa
new_IDrsa.pub
第二步:在目录内删除密钥文件
确认要删除的密钥文件后,直接在 .ssh
目录内删除它们:
# 删除默认的 RSA 密钥对
rm -f id_rsa id_rsa.pub# 如果使用其他其他「加密算法」或「自定义名称」的密钥:如 new_IDrsa(私钥) 与 new_IDrsa.pub(公钥)
rm -f id_ed25519 id_ed25519.pub # 加密算法的密钥和公钥
rm -f new_IDrsa new_IDrsa.pub # 自定义的密钥和公钥
注意:-f
参数会强制删除,无需确认。慎用!
第三步:清理 SSH 代理中的密钥缓存
即使删除了文件,密钥可能仍驻留在 SSH 代理的内存中。需要手动清除:
# 启动 SSH 代理(如果未运行)
eval "$(ssh-agent -s)"# 列出所有缓存的密钥
ssh-add -l# 删除所有缓存的密钥
ssh-add -D# 确认清理结果 第二次输入该指令
ssh-add -l # 此时应显示 "The agent has no identities."
这一步确保了密钥从内存中被彻底清除。
当然如果第一次执行了ssh-add -l
指令后没有输出所有缓存密钥的话,而是直接输出了The agent has no identities.
则表示:
代理没有缓存任何密钥
第四步:移除 GitHub 上的公钥记录(关键步骤)
本地删除后,必须同步移除远程平台的公钥记录:
- 登录 GitHub,点击右上角头像进入 Settings
- 在左侧边栏选择 SSH and GPG keys
- 找到与本地删除密钥对应的公钥记录
- 点击右侧的 Delete 按钮完成移除
重要:如果密钥曾用于多个平台(如 GitLab、服务器等),请务必同步删除所有相关记录。
第五步:清理相关配置文件
在 .ssh
目录内编辑配置文件:
nano config
在打开的配置文件中,查找并删除或注释掉(行首加 #
)类似这样的配置行:
# 注释或删除这行
# IdentityFile ~/.ssh/id_rsa
保存退出后,你的配置清理就完成了。
验证清理结果
完成所有步骤后,通过以下命令验证清理是否彻底:
# 检查文件是否消失
ls id_rsa* # 应显示 "No such file or directory"# 测试 GitHub 连接
ssh -T git@github.com # 应提示 "Permission denied (publickey)"
如果看到权限拒绝的提示,说明清理工作已成功完成。
总结:正确的删除顺序
- 进入目录:
cd ~/.ssh
- 远程优先:首先在 GitHub 等平台删除公钥
- 本地清理:删除本地密钥文件
- 内存清理:清除 SSH 代理中的密钥缓存
- 配置整理:更新 SSH 配置文件
遵循这个顺序可以最大程度避免密钥在删除过程中被不当使用。记住,密钥管理是开发者的基本安全素养,定期审查和更新密钥是良好的安全习惯。