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

使用JGit推送代码至Bitbucket遇权限及Origin未找到问题求助

解决JGit推送到Bitbucket的两类问题

1. 修复"origin not found"错误

  • 先检查本地仓库是否配置了origin远程地址:
    用JGit代码验证:
    Git git = Git.open(new File("/你的仓库路径"));
    String originUrl = git.getRepository().getConfig().getString("remote", "origin", "url");
    System.out.println("Origin地址: " + originUrl);
    
    如果输出为空,说明需手动添加origin远程:
    git.remoteAdd()
      .setName("origin")
      .setUri(new URIish("ssh://git@bitbucket.org/你的用户名/你的仓库名.git"))
      .call();
    
  • 若克隆时用的是SSH URL,默认会自动生成origin配置,若后续修改配置导致丢失,重新添加即可。

2. 解决"not authorized"未授权错误

你能通过SSH克隆成功,说明SSH密钥对有效,问题多出自推送时的协议或凭证配置:

场景1:使用SSH协议推送(推荐)

JGit通过SSH推送需配置会话工厂,加载你的私钥:

// 配置SSH会话工厂
SshSessionFactory sshSessionFactory = new JschConfigSessionFactory() {
  @Override
  protected void configure(OpenSshConfig.Host host, Session session) {
    session.setConfig("StrictHostKeyChecking", "no"); // 可选,跳过首次连接的主机密钥验证
  }

  @Override
  protected JSch createDefaultJSch(FS fs) throws JSchException {
    JSch jsch = super.createDefaultJSch(fs);
    // 替换为你的私钥路径,比如~/.ssh/id_rsa
    jsch.addIdentity("/用户目录/.ssh/id_rsa");
    return jsch;
  }
};
SshSessionFactory.setInstance(sshSessionFactory);

// 执行推送
Git git = Git.open(new File("/你的仓库路径"));
git.push().call();

配置后,推送会自动用SSH密钥验证,无需额外输入用户名密码或令牌。

场景2:使用HTTPS协议推送

Bitbucket已禁用账号密码登录,必须使用应用密码:

  • 先在Bitbucket账号的「App passwords」页面创建应用密码,勾选Repository write权限;
  • 在JGit中配置凭证提供者:
    CredentialsProvider provider = new UsernamePasswordCredentialsProvider(
      "你的Bitbucket用户名", 
      "刚创建的应用密码"
    );
    Git git = Git.open(new File("/你的仓库路径"));
    git.push()
      .setCredentialsProvider(provider)
      .call();
    

额外排查项

  • 仓库权限:确认你的账号(或应用密码对应账号)拥有目标仓库的写入权限;
  • 清除旧凭证:若之前配置过错误凭证,JGit可能复用系统存储的内容,手动指定CredentialsProvider可覆盖;
  • 远程URL一致性:推送用的远程URL要和克隆时一致,避免SSH/HTTPS混用导致验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:41:00