Eclipse EGit拉取SSH远程仓库报错:No more authentication methods available
解决Eclipse EGit拉取SSH仓库时「No more authentication methods available」的问题
这种情况我碰到过好几次,核心问题大多是Eclipse EGit没正确识别你本地的SSH密钥配置,或者它使用的SSH客户端和命令行/IntelliJ不一致。给你几个一步步排查的方案:
1. 检查Eclipse的SSH基础配置
打开 Window > Preferences > General > Network Connections > SSH2:
- 在「General」标签页,确认「SSH home」指向你本地的SSH目录(比如Linux/macOS的
~/.ssh,Windows的C:\Users\你的用户名\.ssh) - 切换到「Key Management」标签页,点击「Load Existing Keys」,看看你的私钥(比如
id_rsa、id_ecdsa、id_ed25519)是否被加载。如果没加载,点击「Add Private Key」手动选择你的私钥文件 - 注意:如果你的密钥设置了密码,要确保Eclipse能弹出密码输入框,或者你已经启动了SSH代理(比如Windows的Pageant,Linux/macOS的
ssh-agent)来缓存密码
2. 让EGit使用系统SSH客户端
有些旧版本的Eclipse EGit默认用内置SSH客户端,和系统的不兼容。你可以强制它用系统的:
- 打开
Window > Preferences > Team > Git > Configuration - 点击「Add Entry」,添加配置项
core.sshCommand,值设为你系统的SSH命令路径:- Linux/macOS:
/usr/bin/ssh - Windows:
C:\Windows\System32\OpenSSH\ssh.exe(如果是Git自带的SSH,路径可能是C:\Program Files\Git\usr\bin\ssh.exe)
- Linux/macOS:
- 应用配置后重启Eclipse,再尝试拉取
3. 确认远程仓库的URL格式
右键项目 → Team > Remote > Configure Push to Upstream,检查远程仓库的URL是SSH格式(比如git@github.com:username/repo.git),而不是HTTPS格式。如果之前是HTTPS切换到SSH的,记得右键项目 → Team > Fetch from Upstream刷新远程配置。
4. 升级EGit版本(关键步骤)
你的Eclipse是2019-09版本,自带的EGit版本大概率比较旧,对新的SSH密钥算法(比如ED25519)支持不足。更新EGit的方法:
- 打开
Help > Eclipse Marketplace,搜索「EGit」,找到兼容你Eclipse版本的最新EGit插件,点击「Update」安装 - 安装完成后重启Eclipse,再尝试拉取代码
5. 测试SSH连接有效性
在Eclipse里直接测试SSH连接:打开 Window > Preferences > General > Network Connections > SSH2,切换到「SSH2」标签页,点击「Test Connection」,输入SSH服务器地址(比如github.com),如果连接失败,说明密钥加载或配置有问题,先解决这个测试连接的问题再去拉取代码
内容的提问来源于stack exchange,提问作者Tung Vo
相关产品推荐
相关产品推荐

