目的
当你需要使用特定的 SSH 私钥来克隆 Git 仓库时
步骤
m1.使用 SSH_CONFIG 文件
- 编辑或创建
~/.ssh/config 文件
- 添加以下内容:
1 2 3 4 5
| Host github.com # 或其他 Git 服务器地址 HostName github.com User git IdentityFile ~/.path/to/your/private_key IdentitiesOnly yes
|
- 然后正常使用
git clone 命令:
1
| git clone git@github.com:username/repository.git
|
m2.使用 ssh-agent
- 首先启动 ssh-agent:
- 添加你的私钥:
1 2 3 4
| ssh-add ~/.path/to/your/private_key
设置密钥超时时间(到期后自主注销) ssh-add -t 3600 ~/.ssh/your_key
|
- 然后正常使用
git clone 命令
ssh-add管理临时加载私钥
1. 查看当前已加载的密钥
首先查看 ssh-agent 中已经添加了哪些密钥:
这会显示所有已加载密钥的指纹和对应的注释。
2. 移除特定密钥
要移除特定的密钥:
1
| ssh-add -d ~/.ssh/your_private_key
|
或者使用密钥的完整路径:
1
| ssh-add -d /path/to/your/private_key
|
3. 移除所有密钥
要一次性移除 ssh-agent 中的所有密钥:
4. 完全重置 ssh-agent
如果你想彻底重置 ssh-agent(包括所有密钥和代理本身):
这会杀死当前的 ssh-agent 进程。下次需要时,它会自动重新启动。
注意
- 这些命令只会影响 ssh-agent 中的密钥缓存,不会删除实际的密钥文件。
- 如果你在多个终端会话中使用 ssh-agent,可能需要在这些会话中分别执行移除操作。
- 移除密钥后,后续的 SSH 操作(如 git push/pull)可能需要重新验证或输入密码。
示例流程
1 2 3 4 5 6 7 8 9 10 11
| ssh-add -l
ssh-add -d ~/.ssh/id_rsa_work
ssh-add -l
ssh-add -D
|
注意事项
- 确保私钥文件权限设置为
600:1
| chmod 600 ~/.path/to/your/private_key
|
- 如果私钥有密码,使用上述方法时需要输入密码
- 对于 GitHub,确保对应的公钥已添加到你的 GitHub 账户ß