无法通过SSH从Eclipse连接Git仓库的技术求助
我之前在配置Eclipse+SSH连接Git仓库时也踩过这个坑,结合自己的解决经验,给你几个实用的排查方向:
先明确报错核心
你遇到的错误里的verify: false,本质是SSH主机密钥验证失败——Eclipse的Egit组件没能确认目标Git服务器的身份,所以拒绝建立连接。下面是具体解决步骤:
手动添加主机密钥到已知列表
先脱离Eclipse,打开终端/命令提示符,执行SSH连接命令:ssh username@localhost -p 8001首次连接时会提示你确认主机密钥,输入
yes确认。这会把localhost:8001的密钥存入系统的SSH已知主机文件(Linux/macOS是~/.ssh/known_hosts,Windows是C:\Users\<你的用户名>\.ssh\known_hosts)。之后Eclipse默认会读取这个文件,就能通过密钥验证了。切换Egit使用系统SSH客户端
Eclipse内置的SSH客户端有时候会和系统环境不兼容,你可以改成用系统自带的SSH工具:- 打开Eclipse的
Preferences(Windows/Linux是Window > Preferences,macOS是Eclipse > Settings) - 导航到
Team > Git > Configuration - 点击
Add Entry,添加配置项:- Key:
core.sshCommand - Value: 系统SSH的路径,比如Windows是
C:\Windows\System32\OpenSSH\ssh.exe,Linux/macOS是/usr/bin/ssh
这样Egit会调用系统SSH处理连接,稳定性更高。
- Key:
- 打开Eclipse的
检查SSH密钥文件权限(Linux/macOS用户)
如果用的是SSH密钥对登录,务必确保私钥文件权限是600(仅自己可读写),公钥是644,否则SSH会拒绝使用密钥:chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub验证基础SSH连接是否正常
在终端执行ssh -T username@localhost -p 8001,如果能收到Git服务器的欢迎提示(比如"Welcome to GitLab, username!"),说明SSH本身没问题,问题只在Eclipse配置;如果终端也连不上,先排查服务器端口是否开放、用户名是否正确、公钥是否已添加到服务器的authorized_keys文件里。更新Egit插件
老版本的Egit可能存在SSH相关的bug,打开Eclipse的Help > Eclipse Marketplace,搜索"Egit",安装最新版本的插件后再尝试连接。
你遇到的错误信息:
org.eclipse.jgit.api.errors.TransportException: ssh://username@localhost:8001/Repo: verify: false
at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:223)
at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:161)
at org.eclipse.egit.core.op.ListRemoteOperation.run(ListRemoteOperation....
内容的提问来源于stack exchange,提问作者user1259987

