无法让TeamCity使用默认私钥向GitHub进行身份验证

时间:2014-01-10 03:40:32

标签: git github ssh teamcity

我正在尝试让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时,我显然需要我的构建代理才能工作

3 个答案:

答案 0 :(得分:3)

最容易解决的问题是:

  1. 在您的管道项目设置" SSH密钥"上下载您的(OpenSSH)密钥。 (如下所示):

    Pipeline - Project settings (ssh)

      

    查看OpenSSH信息的资源链接(为什么/如何)

  2. 然后在VCS根设置中,更新"验证设置"如下所示:

    enter image description here

      
        
    • note :用户名为; "的 GIT中" (见第3资源)
    •   
  3. 确保您的"获取网址"看起来像" git@bitbucket.org:ProjectName / RepositoryName.git" - (注意:此处需要Github等效)

  4. 添加新密钥(请参阅第一资源)

  5. <强>资源:

答案 1 :(得分:2)

Git通过形成%HOMEDRIVE%/%HOMEPATH%的路径来查找.ssh文件夹。我发现即使%USERPROFILE%环境变量设置正确,也没有设置。如果%HOMEDRIVE%为空,则将使用%SYSTEMDRIVE%,因此默认情况下它将在c:\(或任何系统驱动器)中查找.ssh文件夹。

通过构建的参数选项卡选择代理以及构建正在使用的内容时,可以通过代理参数选项卡检查代理具有的环境变量。

解决方案1 ​​

在c:

中创建.ssh文件夹

解决方案2

为%HOMEDRIVE%&amp;设置环境变量%HOMEPATH%以匹配您的userprofile

的位置

解决方案3

git也可以使用%HOME%环境变量这是完整路径,即等于%USERPROFILE%

答案 2 :(得分:0)

使用default private key网址而不是http://...

时,

git@...也被停用