如何从SourceTree的SSH Agent中移除重复或不需要的SSH密钥
SourceTree SSH 密钥与Agent相关问题解决方案
1. 移除SourceTree中重复添加的SSH密钥
多次要求输入同一密钥密码的问题,是因为重复添加密钥时SourceTree在SSH配置中写入了多条相同的IdentityFile记录,按以下步骤清理:
- 完全关闭SourceTree,在任务管理器「详细信息」标签页找到
ssh-agent.exe进程,右键选择「结束任务」 - 打开文件资源管理器,地址栏输入
%USERPROFILE%\.ssh回车进入SSH配置目录 - 用记事本打开
config文件,删除所有重复的IdentityFile开头的行(只保留一条对应你密钥的记录即可),保存关闭 - 若清理后问题仍存在,进入路径
%APPDATA%\Atlassian\SourceTree,删除目录下的ssh_host_keys和ssh_config文件,重启SourceTree后会自动生成新的配置文件
2. 连接SourceTree自行启动的SSH Agent
直接执行ssh-add报错Error connecting to agent: No such file or directory,是因为SourceTree启动的SSH Agent没有将身份验证套接字和进程ID的环境变量注入全局终端,按以下步骤可临时连接:
- 任务管理器「详细信息」标签页找到SourceTree启动的
ssh-agent.exe,记下对应的PID值 - 打开SourceTree自带的Git Bash终端,依次执行以下命令(将
<PID>替换为你记下的进程ID):export SSH_AGENT_PID=<PID> export SSH_AUTH_SOCK=$(find /tmp/ssh-* -name "agent.*" | grep -E "agent\.${SSH_AGENT_PID:0:4}" | head -n 1) - 现在就可以正常执行
ssh-add相关命令管理该Agent中的密钥了
3. 配置SourceTree使用系统SSH Agent(推荐方案)
要彻底避免SourceTree自行启动SSH Agent,改用系统内置的OpenSSH Authentication Agent服务,按以下步骤操作:
3.1 启动系统SSH Agent服务
- 按Win+R快捷键输入
services.msc回车打开服务管理器 - 找到「OpenSSH Authentication Agent」服务,双击打开属性面板
- 启动类型选择「自动」,点击「启动」按钮,确认服务状态变为「正在运行」后点击确定保存
3.2 修改SourceTree SSH配置
- 打开SourceTree,点击顶部菜单栏「工具」→「选项」
- 切换到「SSH」选项卡,确认SSH客户端已选择「OpenSSH」
- 勾选「不自动启动SSH Agent,使用系统运行的SSH Agent」选项,点击确定保存
- 重启SourceTree生效
3.3 添加密钥到系统SSH Agent
- 打开PowerShell或CMD,执行
ssh-add 你的密钥完整路径,示例:ssh-add C:\Users\张三\.ssh\id_rsa - 输入一次密钥密码后,只要系统服务不重启,后续不需要重复输入密码
4. 通用SSH Agent操作命令
- 查看已加载的密钥指纹列表:
ssh-add -l - 查看已加载的完整公钥列表:
ssh-add -L - 删除指定密钥:
ssh-add -d 密钥完整路径 - 清空所有已加载的密钥:
ssh-add -D
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

