goland中ssh克隆失败提示“remote repository not found”大概率因地址缺.git后缀或误用网页url;需确保ssh密钥正确生成、加载并添加至平台,且goland配置为native ssh并正确识别ssh-agent。

GoLand里用SSH地址克隆失败,提示“remote repository not found”
大概率是地址没带 .git 后缀,或者用了 GitHub 页面 URL(如 https://github.com/user/repo)而非 SSH 地址(git@github.com:user/repo.git)。GoLand 的 Get from VCS 对协议和格式很敏感,不接受网页链接。
常见错误现象包括:
- 粘贴了浏览器地址栏里的 URL,不是仓库的 SSH 克隆地址
- 复制了 HTTPS 地址却当成 SSH 用(比如
https://gitlab.com/user/proj.git) - SSH 地址漏掉
.git(git@gitlab.com:user/proj❌,必须是git@gitlab.com:user/proj.git✅)
本地 SSH 密钥没生成或没配到 Git 服务端
GoLand 本身不生成密钥,它依赖系统级的 ssh-agent 和 ~/.ssh/id_rsa(或 id_ed25519)文件。如果 ~/.ssh/ 下没有私钥,或者公钥没加到 GitLab/GitHub/Gitee 的 SSH Keys 设置页,就会卡在认证环节。
实操建议:
- 用终端执行
ssh-keygen -t ed25519 -C "your_email@example.com"生成新密钥(比 RSA 更安全) - 运行
eval "$(ssh-agent -s)"启动代理,再用ssh-add ~/.ssh/id_ed25519加载密钥 - 用
cat ~/.ssh/id_ed25519.pub复制公钥内容,粘贴到 Git 服务端的 SSH Keys 页面(不是 Deploy Keys) - 首次 clone 时若弹出
The authenticity of host 'gitlab.com' can't be established,直接输yes—— 这是正常流程,会自动写入~/.ssh/known_hosts
GoLand 没识别已配置的 SSH 环境
即使终端里 git clone git@gitlab.com:user/proj.git 能成功,GoLand 仍可能报错,因为它默认不复用系统 ssh-agent,尤其在 macOS 或 Linux 图形界面下启动时。
监控一个或多个 GitCode 仓库的 PR,通过 OpenClaw Gateway 自动执行 AI 审查,发布 PR 评论,并发送钉钉和企业微信通知。
解决方法:
- 不要从桌面图标直接启动 GoLand,改用终端执行:
env SSH_AUTH_SOCK="$SSH_AUTH_SOCK" /opt/GoLand/bin/goland.sh(路径按实际调整) - 检查 GoLand 的
Settings > Version Control > Git,确认SSH executable设为Native(不是 Built-in) - 如果用的是 Windows + WSL,确保 GoLand 运行在 Windows 上,但 SSH 密钥路径指向 WSL 的
\wsl$Ubuntuhomeuser.ssh不生效 —— 必须把密钥复制到 Windows 的%USERPROFILE%.ssh
克隆后项目不识别为 Go Module
SSH 克隆成功只是第一步。GoLand 不会自动把目录当 Go 项目处理,尤其是根目录下没有 go.mod 或 main.go 时,编辑器会显示 “Project SDK is not configured”。
必须手动触发模块加载:
- 右键项目根目录 →
Load project as Go Module - 如果没这个菜单项,说明 GoLand 没检测到 Go SDK:去
Settings > Go > GOROOT指向正确路径(如/usr/local/go或C:Go) - 确认
Settings > Go > Go Modules中勾选了Enable Go modules integration - 避免把新项目克隆进已有 Go module 子目录里(比如
~/go/src/github.com/xxx内再 clone),否则 GoLand 可能拒绝加载
最常被忽略的一点:SSH 密钥权限必须是 600(chmod 600 ~/.ssh/id_ed25519),否则 ssh-agent 会静默拒绝加载,GoLand 就始终走不通认证流程 —— 错误不报,只显示 clone 失败。










