0
我有一个npm项目,取决于几个私人Github存储库。我在staging服务器上部署项目,并且我为每个私有存储库设置了单独的部署密钥,因为Github不允许为每个私钥使用相同的密钥。我已经建立了的〜/ .ssh /配置是这样的:如何设置多个Github部署密钥(npm,yarn)?
Host 1.github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/key-1
StrictHostKeyChecking no
Host 2.github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/key-2
StrictHostKeyChecking no
Host 3.github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/key-3
StrictHostKeyChecking no
在的package.json,我有以下的私人Github上库的依赖关系:
"project1": "git+ssh://[email protected]/myorg/project1.git",
"project2": "git+ssh://[email protected]/myorg/project2.git",
"project3": "git+ssh://[email protected]/myorg/project3.git"
然而,这并不工作,我m得到Permission denied (publickey)
错误。这些项目也被那些使用Github帐户访问存储库的用户使用。
如何让钥匙工作?
这是不可能的,因为这些密钥没有被使用该项目的每个人使用。将这种特定于环境的路径提交到package.json是不切实际的。 – Kitanotori
在这种情况下,您将不得不自行修改,否则您将不得不调整项目结构。请注意,除非您将更改存储网址,否则git将不知道要使用哪个密钥。其他的可能性是使用GIT_SSH_COMMAND env。变量与单独的prijects的设置。 – Jakuje
你如何为每个项目设置GIT_SSH_COMMAND?另外,是否有可能会按顺序尝试的密钥列表? – Kitanotori