WSL2下通过SSH推GitHub反复要求输入正确SSH密钥密码
解决Git LFS SSH版本协商失败导致推送反复要求输入密码的问题
修复方案:
1. 升级Git LFS到最新版本
当前3.4.0版本存在SSH版本协商的已知问题,升级到最新稳定版可解决大部分此类问题:
# Debian/Ubuntu系WSL2环境执行 curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt-get install git-lfs # 验证升级结果 git lfs version
其他发行版可使用对应包管理器或直接下载官方二进制文件替换。
2. 关闭Git LFS的SSH版本协商
强制LFS使用兼容的传统SSH交互流程,避免版本协商时的EOF错误:
git config --global lfs.ssh.negotiateversion false
3. 检查WSL2 SSH代理转发配置
若Windows主机运行SSH代理,确保WSL2能正确转发代理连接:
- 编辑
~/.ssh/config,添加以下内容(替换密钥路径为你的实际路径):
Host github.com IdentityFile ~/.ssh/id_rsa ForwardAgent yes
- 重启WSL2的SSH代理并加载密钥:
eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa
4. 重置Git LFS配置
若存在配置冲突,重置LFS后重新初始化:
git lfs uninstall git lfs install git lfs pull
验证修复
执行推送前先检查LFS环境状态:
GIT_TRACE=1 git lfs env
确认无SSH相关错误后,再执行git push origin main。
内容的提问来源于stack exchange,提问作者Rob Rose
相关产品推荐
相关产品推荐

