使用Github部署密钥时权限被拒绝错误

时间:2012-05-15 20:20:52

标签: git deployment github amazon-ec2 key

所以我有一个项目(私人仓库),它有多个子模块(也是私有的)。我有一个托管在Amazon EC2上的服务器,它将容纳项目,我想使用我们的私有Github仓库。

我为主项目生成了一个ssh密钥,并将其添加到项目部署密钥中。我还为每个子模块生成了额外的ssh密钥,并将其添加到部署密钥中。

当我尝试克隆项目时(使用git @ github),它不起作用:

权限被拒绝(publickey)。 致命:远程端意外挂断

我已经仔细检查了每个仓库及其部署密钥,一切似乎都是正确的。我还缺少其他一些小步骤吗?

1 个答案:

答案 0 :(得分:7)

简短回答:没有简单的方法可以将部署密钥与私有子模块一起使用。根据我的经验,您有两种选择:

  1. 继续使用子模块但停止使用部署密钥,而是使用单个帐户级SSH密钥授予对所有私有存储库的访问权限(更简单,更不安全)
  2. 停止使用子模块,继续使用部署密钥,并手动git clone每个存储库传入与部署密钥匹配的SSH私钥(更棘手,更安全)
  3. 原因是git clone触发SSH连接,一次只能使用一个SSH私钥(例如〜/ .ssh / id_rsa)。使用的SSH私钥必须与存储库的部署密钥匹配 - 并且每个项目的部署密钥必须是唯一的。对于子模块克隆,您只使用一个私钥。该密钥可能与您的顶级项目匹配,但在您提供的错误的子项目中肯定会失败。

    希望这有用..