Windows下SourceTree使用Plink作为SSH Agent时YubiKey验证弹窗无法弹出的问题解决咨询
我之前也踩过这个坑,折腾了好一阵才找到可行的解决办法,给你几个方向试试:
修改SourceTree的Plink启动参数
默认的Plink调用可能没开启图形界面验证触发的参数。打开SourceTree的「设置」→「高级」→「SSH客户端配置」,把SSH工具的路径改成带参数的格式:C:\Program Files\PuTTY\plink.exe -agent -t这里的
-t参数是强制分配伪终端,能触发YubiKey的图形验证弹窗,-agent则确保和Pageant代理配合工作(路径要根据你实际的PuTTY安装位置调整)。确保Pageant正常运行并加载密钥
Plink通常依赖Pageant管理SSH密钥,要是Pageant是后台静默启动的,可能不会弹出验证窗口。手动关闭Pageant后重新打开,把你的YubiKey对应的SSH密钥拖进Pageant窗口,再回到SourceTree尝试拉取操作。配置SSH强制交互式验证
在用户目录(C:\Users\你的用户名)下新建或修改.ssh/config文件,添加以下配置:Host * PubkeyAuthentication yes ChallengeResponseAuthentication yes KbdInteractiveAuthentication yes IdentityAgent pageant这段配置会强制SSH启用交互式验证流程,让YubiKey的验证弹窗能正常触发。
切换SourceTree的终端类型
如果SourceTree用的是内置终端,可能会抑制外部弹窗。进入「设置」→「终端」,把终端类型改成「系统默认」(比如命令提示符或PowerShell),重启SourceTree后再测试。提前手动建立一次SSH连接
先打开命令提示符,运行以下命令手动连接服务器:plink -agent -t 你的服务器用户名@服务器IP这时候应该会弹出YubiKey的验证窗口,完成验证后再回到SourceTree拉取代码,会话缓存会让后续操作自动复用验证状态,弹窗就能正常触发了。
内容的提问来源于stack exchange,提问作者FaceBro

