我正在尝试让TeamCity构建我的私有GitHub存储库。当我明确设置密钥文件的路径时,我能够成功获取VCS根目录以通过连接测试;然而,尽管有很多谷歌搜索,当我使用'默认私钥'选项时,我无法让它工作。我得到com.jcraft.jsch.JSchException: Auth fail
。
我的TeamCity服务器和构建代理都以名为( gasp )teamcity
的用户身份运行,C:\users\teamcity\.ssh\
的内容包括config
和密钥文件,其中配置指向密钥文件。我的配置包含:
Host *
IdentityFile ~/.ssh/github.key
我尝试了各种不同的路径样式,包括Windows和Unix样式,但似乎都没有。
同样,如果我使用private key
设置并显式设置密钥文件的路径,它可以正常工作,但是当我使用default private key
时,我显然需要我的构建代理才能工作
答案 0 :(得分:3)
最容易解决的问题是:
在您的管道项目设置" SSH密钥"上下载您的(OpenSSH)密钥。 (如下所示):
查看OpenSSH信息的资源链接(为什么/如何)
然后在VCS根设置中,更新"验证设置"如下所示:
- note :用户名为; "的 GIT中强>" (见第3资源)
确保您的"获取网址"看起来像" git@bitbucket.org:ProjectName / RepositoryName.git" - (注意:此处需要Github等效)
添加新密钥(请参阅第一资源)
<强>资源:强>
答案 1 :(得分:2)
Git通过形成%HOMEDRIVE%/%HOMEPATH%的路径来查找.ssh文件夹。我发现即使%USERPROFILE%环境变量设置正确,也没有设置。如果%HOMEDRIVE%为空,则将使用%SYSTEMDRIVE%,因此默认情况下它将在c:\(或任何系统驱动器)中查找.ssh文件夹。
通过构建的参数选项卡选择代理以及构建正在使用的内容时,可以通过代理参数选项卡检查代理具有的环境变量。
在c:
中创建.ssh文件夹为%HOMEDRIVE%&amp;设置环境变量%HOMEPATH%以匹配您的userprofile
的位置git也可以使用%HOME%环境变量这是完整路径,即等于%USERPROFILE%
答案 2 :(得分:0)
default private key
网址而不是http://...
时, git@...
也被停用