【问题标题】:Jenkins access private BitBucket repo over SSHJenkins 通过 SSH 访问私有 BitBucket 存储库
【发布时间】:2021-05-28 14:44:36
【问题描述】:

我无法让 Jenkins 通过 SSH 在 BitBucket 上克隆一个 git 存储库。失败并显示以下消息:

Building in workspace /var/lib/jenkins/workspace/test
[ssh-agent] Using credentials git (git@bitbucket.org:<user>/<repo>.git)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Java/JNR ssh-agent
[ssh-agent] Started.
Checkout:test / /var/lib/jenkins/workspace/test - hudson.remoting.LocalChannel@2b619bca
Using strategy: Default
Fetching changes from 1 remote Git repository
Fetching upstream changes from origin
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
hudson.plugins.git.GitException: Command "git fetch -t origin +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: ssh: connect to host bitbucket.org port 22: Connection refused
fatal: The remote end hung up unexpectedly

采取的步骤

  • 创建 SSH 密钥对
  • 将公钥添加为 BitBucket 上存储库的部署密钥
  • 在 Jenkins 凭据管理器插件中安装 SSH 密钥和用户名(已尝试过“git”和我的 BB 帐户名)
  • 尝试使用

    形式的 URL 克隆构建中的存储库

    git@bitbucket.org:&lt;user&gt;/&lt;repo&gt;.git

我也尝试过不使用凭据管理器并在/var/log/jenkins/.ssh/ 中手动安装密钥,但无济于事。

任何想法我做错了什么?

【问题讨论】:

  • 克隆是否从命令行工作? Jenkins 可能以用户“jenkins”的身份运行,这可能与您尝试克隆的用户不同... Jenkins 必须以您为其上传密钥的用户“用户”运行...
  • 实际上,不 - 原来是防火墙问题。感谢您的帮助。
  • FWIW 将密钥从我的用户帐户复制到 /var/lib/jenkins/.ssh 帮助我解决了类似问题

标签: git ssh jenkins bitbucket


【解决方案1】:

正如@user1562655 建议的那样,克隆由于另一个问题而失败 - 在这种情况下,防火墙阻止了端口 22 上的传出 ssh。

解决方法是使用端口 443(因为服务器允许这样做)和不同的 BitBucket URL:

ssh://git@altssh.bitbucket.org:443/<user>/<repo>.git

…而不是

ssh://git@bitbucket.org:<user>/<repo>.git

有关该计划的更多信息可在此处获得:

UsetheSSHprotocolwithBitbucket-SSHonPort443

【讨论】:

  • 另外,澄清一下:SSH 凭证插件 /was/ 正在为构建器提供相关密钥;无需在jenkins`~/.ssh中手动安装。
  • Atlassian 文档现在位于此处:confluence.atlassian.com/bitbucket/…
  • 也...不是.git...以/结尾。例如:ssh://git@altssh.bitbucket.org:443/&lt;user&gt;/&lt;repo&gt;/
  • @user2424511 提供的链接已失效
【解决方案2】:

我遇到了同样的问题,实际上这个解决方案帮助了我:

vim ~/.ssh/config

添加这些行并保存。

Host github.com
    Hostname ssh.github.com
    Port 443

Host bitbucket.org
    Hostname  altssh.bitbucket.org
    Port  443

取自https://gist.github.com/goddoe/5692bfc3cdc374d918a87882963edf36

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2014-08-15
    • 2017-03-25
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多