Android Studio克隆GitLab仓库报连接、公钥权限错误如何解决
GitLab克隆故障排查方案(ZorinOS + Android Studio 2021.2.1.4环境)
SSH协议克隆报Permission denied (publickey)排查步骤
- 跳过IDE直接在系统终端验证连通性,执行
ssh -T git@gitlab.com,先排除IDE配置干扰。 - 终端同样报错的话按以下顺序处理:
- 重新生成兼容格式的RSA密钥,旧版默认生成的2048位密钥可能被GitLab拦截,执行命令
ssh-keygen -t rsa -b 4096 -C "你的GitLab账号绑定邮箱",生成时全程回车使用默认路径,不要自定义密钥文件名,避免SSH代理无法自动识别。 - 把私钥加载到SSH代理,依次执行:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa - 核对上传到GitLab的公钥正确性:公钥内容存放在
~/.ssh/id_rsa.pub文件中,不要误传无后缀的私钥文件内容,上传后可核对公钥末尾的邮箱注释与账号绑定邮箱一致。 - 终端执行
ssh -T git@gitlab.com返回Welcome to GitLab, @你的GitLab用户名!即代表系统层SSH配置正常。此时打开Android Studio,进入Settings > Version Control > Git,将Git可执行文件路径设置为系统自带Git路径(默认是/usr/bin/git),不要使用IDE内置的旧版Git组件,点击Test按钮正常返回Git版本号即配置生效。
- 重新生成兼容格式的RSA密钥,旧版默认生成的2048位密钥可能被GitLab拦截,执行命令
- 测试前临时关闭系统全局代理、VPN,以及ZorinOS自带防火墙,避免22端口被拦截导致连接失败。
HTTPS(URL方式)克隆报Unexpected end of file from server排查步骤
- 该报错为Android Studio 2021.2.1版本的已知兼容问题,内置的credential helper组件与GitLab新版HTTPS认证逻辑不匹配,先关闭IDE设置里的Use credential helper选项。
- 同样先在系统终端验证HTTPS连通性,执行
git clone 你复制的仓库HTTPS地址,弹出认证框时用户名填GitLab账号用户名,密码填你生成的access token(注意token必须勾选read_repository、write_repository权限,确认token未过期),终端能正常拉取代码即代表网络、认证本身无问题。 - 清理IDE错误认证缓存:进入
Settings > Appearance & Behavior > System Settings > Passwords,选择Do not save, forget passwords after restart,重启IDE后重新触发克隆,弹出密码输入框时填入access token即可。 - 如果终端HTTPS克隆也报连接中断,执行以下命令清理Git全局代理配置:
清理完成后重新测试克隆即可。git config --global --unset http.proxy git config --global --unset https.proxy
验证注意事项
- 终端层面两种协议都测试通过后,不要直接在IDE欢迎页点击Clone入口,先打开任意空项目,通过顶部菜单
VCS > Get from Version Control进入克隆页面,规避欢迎页的路径配置bug。
内容的提问来源于stack exchange,提问作者MateMalte
相关产品推荐
相关产品推荐

