【问题标题】:Connecting Eclipse JGit to GitHub, so TeamCity may check for changes将 Eclipse JGit 连接到 GitHub,以便 TeamCity 可以检查更改
【发布时间】:2022-03-19 03:39:16
【问题描述】:

GitHub 已启用其 2nd phase of SSH protocol security,他们在其中禁止使用 SHA-1 和 RSA 密钥。 OpenSSH 客户端使用 RSA 密钥可以正常工作,但 TeamCity 中的 org.jgit 不再工作,得到:

无法收集更改,错误:org.eclipse.jgit.errors.NoRemoteRepositoryException: git@github.com:Project/Repository.git: 错误:您正在使用带有 SHA-1 的 RSA 密钥,该密钥不再是允许。请使用较新的客户端或不同的密钥类型。

如何指示 TeamCity 不使用 SHA-1 而是使用支持的哈希?

我可能会迁移到 Ed25519 密钥,但我们的 Windows 代理不支持它,我必须再次更改 TeamCity 中的所有密钥,这意味着我会遇到两个问题。

在 2022 年,有没有一种实用的方法可以使用 GitHub 的 SSH RSA 密钥与 TeamCity 交朋友?供参考,我在2021.2.1

【问题讨论】:

    标签: github rsa teamcity jsch jgit


    【解决方案1】:

    TeamCity 现在推出了可以使用 SHA-512 正确使用 RSA 密钥的版本,GitHub 将接受该版本。与大多数其他客户端不同,较旧版本的 TeamCity 更喜欢 ssh-rsa 而不是 rsa-sha2-512rsa-sha2-256,因此在使用 RSA 密钥并收到此消息时,他们将始终尝试使用基于 SHA-1 的不安全 RSA 签名登录。 OpenSSH 优先使用基于 SHA-2 的签名,因此它可以工作。

    如果您使用最新版本 2021.2.3 或更高版本,那么您应该能够毫无问题地使用 RSA 密钥。 Ed25519 密钥或 ECDSA 密钥也可能能够正常工作,尽管旧版本也可能存在错误。

    【讨论】:

    • Ed25519 或 ECDSA 密钥似乎也因 JSch 中的错误而不起作用。
    • 我已更新答案以反映 TeamCity 现在已修复版本。您需要使用最新版本,我已经看到至少有一些证据碰巧有效。
    • 很高兴听到这个消息。不幸的是,JGit 的普遍问题似乎仍然存在:stackoverflow.com/questions/71532284/… - 我想知道他们是如何解决这个问题的。
    • 他们使用了叉子。我刚刚回答了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多