从私有Github存储库获取节点依赖项时,Teamcity不使用SSH密钥

时间:2017-01-05 12:53:44

标签: node.js git github ssh teamcity

我正在使用一些私有Github存储库作为我的节点应用程序的依赖项:

"dependencies": {
    "lib1": "git+ssh://git@github.com/org/repo.git",
    "lib2": "git+ssh://git@github.com/org/repo2.git",
}

为了使用Github进行身份验证,我在GitHub上设置了一个私钥,并将SSH-Agent配置为构建功能。

节点应用程序本身也是一个私有的Github存储库。从Github获取节点应用程序代码时的身份验证工作正常,但在运行npm install时不适用于任何依赖项:

[Step 2/4] npm ERR! Linux 4.4.11-23.53.amzn1.x86_64
[12:34:48]  [Step 2/4] npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
[12:34:48]  [Step 2/4] npm ERR! node v6.2.0
[12:34:48]  [Step 2/4] npm ERR! npm  v3.8.9
[12:34:48]  [Step 2/4] npm ERR! code 128
[12:34:48]  [Step 2/4] 
[12:34:48]  [Step 2/4] npm ERR! Command failed: git clone --template=/home/ec2-user/.npm/_git-remotes/_templates --mirror ssh://git@github.com/org/repo.git /home/ec2-user/.npm/_git-remotes/git-ssh-git-github-com-org-repo-git-0820d508
[12:34:48]  [Step 2/4] npm ERR! Cloning into bare repository '/home/ec2-user/.npm/_git-remotes/git-ssh-git-github-com-org-repo-git-0820d508'...
[12:34:48]  [Step 2/4] npm ERR! Host key verification failed.
[12:34:48]  [Step 2/4] npm ERR! fatal: Could not read from remote repository.
[12:34:48]  [Step 2/4] npm ERR! 
[12:34:48]  [Step 2/4] npm ERR! Please make sure you have the correct access rights
[12:34:48]  [Step 2/4] npm ERR! and the repository exists.

步骤1/4实际上是通过运行ssh-add -l来检查SSH-Agent是否正常工作。它打印正确密钥的指纹,该密钥已注册到Github。

任何想法如何让这个工作?我宁愿不在每个代理上手动设置SSH密钥,因为这会破坏Web界面上任何SSH配置的目的。

我正在使用node v6.2.0,npm 3.8.9和TeamCity 10.0.3(build 42434)。

1 个答案:

答案 0 :(得分:0)

我能够通过手动将SSH密钥添加到TeamCity服务器的.ssh目录来解决这个问题。然后,任何代理在选择"默认密钥" (在VCS根目录中,您的密钥名称为id_rsa)。

我仍然在寻找使用通过网络界面管理代码的密钥的解决方案。