3

我有一个在 AWS 上运行的 ec2 实例。 Aegir已安装并且drush make非常适合安装新平台,除非我需要从私有 github 存储库下载主题。

drush make无权访问 github 私有存储库并且平台安装失败。

我该如何克服呢? 是否有一些奇特的方法可以为 git 存储库提供 drush make 或 aegir 用户 ssh 密钥?

我对 ssh-agent 了解不多,但我想也许可以让它一直在我的服务器上运行,这样 aegir 就可以访问我的 github。

如何drush make访问私有 github 存储库?

4

2 回答 2

1

在 EC2 实例上生成 SSH 密钥,然后将公钥(通常为 id_rsa.pub)添加到私有存储库作为解除部署密钥。

于 2012-05-26T08:05:35.170 回答
1

stevenh512 是对的,一步一步的解释如下:

免责声明:我在 Centos 上使用 GitLab + 自定义 VPS,但相同的工作流程可以应用于任何主机(使用 ssh)和 GitHub(ps 我喜欢 GitLab 用于私人存储库)

  1. 以 aegir 身份登录到 VPS,可能您不能(如果您将服务器配置得非常安全),所以以 root 身份登录 su aegir

  2. 转到主目录(cd /var/aegir)并检查您是否有 SSH 密钥。如果你有一个跳跃1步。

    cat ~/.ssh/id_rsa.pub
    
  3. 如果您没有创建一个并且不使用密码短语(有关更多信息http://community.aegirproject.org/node/30#SSH_keys但如果您想要密码短语有解决方案)。创建后,您将拥有密钥的随机图像。(研究 SSH 对安全性来说太重要了!)

    ssh-keygen -t rsa
    
  4. 复制密钥,然后转到您的 GitHub/Lab->account/profile settings->SSH 密钥->添加 SSK 密钥。对于标题,请提供您想要的任何内容(例如:Aegir Key),对于密钥,请从您的服务器粘贴密钥。

    cat ~/.ssh/id_rsa.pub
    
  5. 现在回到服务器,您必须将 Git 添加为已知主机,我们采用简单的方法:只需使用 ssh 登录并在它要求连接时键入 yes。准备好!!

    ssh git@github.com
    - or -
    ssh git@gitlab.com
    
  6. 测试:制作一个 .make 文件并将其保存在公共位置(如 Dropbox,右键单击复制公共 url),例如:

    core = 7.x
    api = 2
    projects[drupal][version] = 7.26
    projects [my_module_name][type] = "module"
    projects [my_module_name][download][type] = "git"
    projects [my_module_name][download][url] = "git@gitlab.com:my_repo.git"
    projects [my_module_name][download][branch] = "master"
    
  7. 转到aegir gui并创建一个新平台并等待验证(否则您可以ssh作为aegir到服务器并使用drush make url.make文件夹进行测试)

警告!这个工作流程不是最安全的!只需尝试一下并正确配置您的服务器!

信息:此工作流程也适用于您的本地开发机器(linux、mac、cygwin),以使用 GitHub 和 GitLab 上的私有存储库

于 2014-03-04T13:06:33.343 回答