You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JGit克隆GitHub私有仓库时出现未授权异常的问题排查

JGit克隆GitHub私有仓库出现未授权异常的可能原因

你用JGit克隆GitHub私有仓库的代码如下:

CloneCommand cloneCommand = Git.cloneRepository();
cloneCommand.setURI( "https://github.com/xxx/testing.git" );
cloneCommand.setCredentialsProvider( new UsernamePasswordCredentialsProvider( "username", "password" ) );
cloneCommand.setDirectory(new File("C:\Users\xxx\Desktop\clone"));
cloneCommand.call();

收到的异常信息:

Exception in thread "main" org.eclipse.jgit.api.errors.TransportException: https://github.com/xxx/testing.git: not authorized
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:249)
    at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:325)
    at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:191)
    at org.example.Main.main(Main.java:45)
Caused by: org.eclipse.jgit.errors.TransportException: https://github.com/xxx/testing.git: not authorized
    at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:685)
    at org.eclipse.jgit.transport.TransportHttp.openFetch(TransportHttp.java:465)
    at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:153)
    at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:105)
    at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1462)
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:238)
    ... 3 more

以下是导致该异常的常见原因:

  • 使用GitHub账号密码而非个人访问令牌(PAT)
    GitHub早已停止支持通过HTTPS使用账号密码进行Git操作,必须使用个人访问令牌(PAT)作为密码。你需要在GitHub账号设置中生成一个带有repo权限的PAT,然后将UsernamePasswordCredentialsProvider的第二个参数替换为这个PAT,第一个参数仍为你的GitHub用户名。

  • PAT权限不足
    即使使用了PAT,如果生成时没有勾选repo权限(包含私有仓库的读写权限),也会触发未授权异常。需要进入GitHub的PAT管理页面,检查并确保权限列表中勾选了repo相关权限。

  • 凭证信息错误
    检查GitHub用户名、PAT是否存在拼写错误:PAT是严格区分大小写和字符的,一旦输错就会验证失败;用户名虽然不区分大小写,但也需确保和账号一致。

  • 仓库URL或访问权限问题
    确认仓库URL是否正确,比如仓库所有者、仓库名是否拼写错误;同时要确保当前GitHub账号确实拥有该私有仓库的访问权限(比如是否被仓库所有者添加为协作者)。

  • 网络代理拦截
    如果处于公司或受限制的网络环境下,代理服务器可能会拦截Git请求,导致凭证无法正确传递给GitHub服务器。需要为JGit配置对应的代理信息,确保请求能正常到达GitHub。

  • 路径转义问题(非直接原因,但需注意)
    代码中本地路径C:\Users\xxx\Desktop\clone存在转义问题,Java中反斜杠需要双重转义为C:\\Users\\xxx\\Desktop\\clone,或者使用正斜杠C:/Users/xxx/Desktop/clone。虽然这不会直接导致未授权异常,但会引发后续的目录创建错误,建议修正。

内容的提问来源于stack exchange,提问作者Thend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:15:25