"Algorithm negotiation fail" 在 TeamCity 上使用 SSH 身份验证

"Algorithm negotiation fail" with SSH authentication on TeamCity

我们有一个 TeamCity 7.1.5,我们的 Git 存储库托管在 TFS 2017 上。我们想使用 Public/Private 密钥切换到 SSH 身份验证。所以我创建了一个 openSSH 密钥对并在我的 TFS 用户上添加了 public 密钥。在我的本地机器上,这按预期工作。

但是当我想将我的 TeamCity VCS Root 配置为也使用 SSH 时,我总是会遇到以下异常:

Failed for the root 'VCS ROOT' #830: List remote refs failed: 
com.jcraft.jsch.JSchException: Algorithm negotiation fail

私钥在 TeamCity 服务器上可用,config 应该是正确的:

Host tfs.company.com
    IdentityFile ~/.ssh/tfs.company.com_rsa_sha1

我已经尝试了 Default Private KeyPrivate Key 选项,有和没有密码短语。

我唯一找到的是升级 JSch 库,但我不知道如何升级这个库以及将 jar 文件放在哪里。

有没有人有类似的问题或者知道如何升级库?

显然解决方案非常简单。我只需要从 http://www.jcraft.com/jsch/ 下载 JSch 库的最新版本 0.1.54 并将其放入 C:\Program Files\TeamCity\webapps\ROOT\WEB-INF\lib。重新启动 TeamCity,一切正常。