我们有一个 TeamCity 7.1.5,我们的 Git 存储库托管在 TFS 2017 上。我们想切换到使用公钥/私钥的 SSH 身份验证。所以我创建了一个 openSSH key 对并在我的 TFS 用户上添加了公钥。在我的本地机器上,这按预期工作。
但是当我想将我的 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 Key
和 Private Key
选项,有和没有密码。
我唯一找到的是升级 JSch
库,但我不知道如何升级这个库以及将 jar 文件放在哪里。
有没有人有类似的问题或者知道如何升级库?
最佳答案
显然,解决方案非常简单。我只需要从 http://www.jcraft.com/jsch/ 下载 JSch 库的最新版本 0.1.54
并将其放入 C:\Program Files\TeamCity\webapps\ROOT\WEB-INF\lib
。重新启动 TeamCity,一切正常。
关于git - "Algorithm negotiation fail"在 TeamCity 上使用 SSH 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44781559/