git - 使用 Github 部署 key 时出现权限被拒绝错误

标签 git deployment github amazon-ec2 key

所以我有一个项目(私有(private)仓库),它有多个子模块(也是私有(private)的)。我有一个托管在 Amazon EC2 上的服务器来 stash 该项目,我想使用我们的私有(private) Github 存储库。

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

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

权限被拒绝(公钥)。 fatal: 远端意外挂断

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

最佳答案

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

  1. 继续使用子模块,但停止使用部署 key ,而是使用单一帐户级 SSH key ,授予对所有私有(private)存储库的访问权限(更简单,安全性更低)
  2. 停止使用子模块,继续使用部署 key ,并手动 git clone 每个存储库传入与部署 key 匹配的 SSH 私钥(更棘手,更安全)

原因是 git clone 触发了一次只能使用一个 SSH 私钥 的 SSH 连接(例如 ~/.ssh/id_rsa)。使用的 SSH 私钥必须与存储库的部署 key 匹配——并且每个项目的部署 key 必须是唯一的。在子模块克隆的情况下,您只使用一个私钥。该 key 可能与您的顶级项目匹配,但肯定会因您提供的错误而在子项目上失败。

希望这对您有帮助..

关于git - 使用 Github 部署 key 时出现权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608285/

相关文章:

c# - Outlook 2003 加载项无法加载,但处于工作状态

git - 您如何将特定分支镜像到另一个存储库中的分支?

git 克隆 gnome 核心套件

git - 忽略当前目录中的文件但排除同名目录

svn - 将 svn 仓库添加到现有的 git 仓库?

Jenkins - 等待手动步骤与一些自 Action 业并行完成

python - 在 Windows 上安装 Fabric(错误 No Module Named Readline)

node.js - Github API OAuth token 验证

git - 在 Github 上查看 .docx 文件,并在 .docx 文件格式上使用 git diff

git - 正确使用git