如何设置多个Github部署密钥(npm,yarn)?

时间:2017-06-15 11:31:15

标签: git github ssh npm yarnpkg

我有一个取决于几个私有Github存储库的npm项目。我正在staging服务器上部署项目,并且我为每个私有存储库设置了单独的部署密钥,因为Github不允许为每个私有存储库使用相同的密钥。我已经设置了这样的〜/ .ssh / config:

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://git@github.com/myorg/project1.git",
"project2": "git+ssh://git@github.com/myorg/project2.git",
"project3": "git+ssh://git@github.com/myorg/project3.git"

但是,这不起作用,我收到Permission denied (publickey)错误。这些项目也被使用Github帐户访问存储库的用户使用。

如何让密钥正常工作?

1 个答案:

答案 0 :(得分:0)

如果要为不同的github帐户使用不同的密钥,则需要使用配置文件中定义的别名修改git URL,例如:

"project1": "git+ssh://git@1.github.com/myorg/project1.git",
"project2": "git+ssh://git@2.github.com/myorg/project2.git",
"project3": "git+ssh://git@3.github.com/myorg/project3.git"