我正在使用一些私有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)。
答案 0 :(得分:0)
我能够通过手动将SSH密钥添加到TeamCity服务器的.ssh
目录来解决这个问题。然后,任何代理在选择"默认密钥" (在VCS根目录中,您的密钥名称为id_rsa
)。
我仍然在寻找使用通过网络界面管理代码的密钥的解决方案。