我在AWS上运行了一个ec2实例。 Aegir
安装drush make
非常适合安装新平台,除非我需要从私有github存储库下载主题。
drush make
无法访问github私有存储库 ,导致平台安装失败。
我如何克服这个?是否有一些奇特的方法可以为git存储库提供drush make或aegir用户ssh密钥?
我对ssh-agent了解不多,但我想可能会在我的服务器上一直运行,所以aegir可以访问我的github。
如何让drush make
访问私有github存储库?
答案 0 :(得分:1)
在EC2实例上生成SSH密钥,然后将公钥(通常为id_rsa.pub)作为deoploy密钥添加到私有存储库。
答案 1 :(得分:1)
stevenh512是对的,下面是一步一步的解释:
免责声明:我在Centos上使用GitLab +自定义VPS,但同样的工作流程可以应用于任何主机(使用ssh)和GitHub(ps我喜欢GitLab用于私人回购)
以aegir身份登录VPS,可能您不能(如果您将服务器配置得非常安全),请以root身份登录su aegir
转到主目录(cd / var / aegir)并检查您是否有SSH密钥。如果你有一步跳跃。
cat ~/.ssh/id_rsa.pub
如果您没有创建一个并且不使用密码短语(更多信息http://community.aegirproject.org/node/30#SSH_keys,但如果您想要密码短语,则有解决方案)。创建后,您将获得密钥的随机图像。 (研究SSH对安全性来说太重要了!)
ssh-keygen -t rsa
复制密钥,然后转到GitHub / Lab->帐户/配置文件设置 - > SSH密钥 - >添加SSK密钥。对于标题,提供您想要的任何内容(例如:Aegir Key),并从您的服务器粘贴密钥。
cat ~/.ssh/id_rsa.pub
现在回到服务器,您必须将Git添加为已知主机,我们采用简单的方法:只需使用ssh登录并在要求连接时键入yes。准备!!
ssh git@github.com
- or -
ssh git@gitlab.com
测试:创建.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"
转到aegir gui并创建一个新平台并等待验证(否则您可以将ssh作为aegir发送到服务器并使用drush make url.make文件夹进行测试)
警告!此工作流程不是最安全的!只需试用它并配置适当的服务器!
信息:此工作流程也可用于本地开发机器(linux,mac,cygwin),以便在GitHub和GitLab上使用私有存储库