Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在远程服务器上克隆GitHub私有repo时出现问题_Git_Ssh_Github_Workflow_Remote Server - Fatal编程技术网

在远程服务器上克隆GitHub私有repo时出现问题

在远程服务器上克隆GitHub私有repo时出现问题,git,ssh,github,workflow,remote-server,Git,Ssh,Github,Workflow,Remote Server,请注意,这是我一直关注的原始文章: 给你一点背景:我们在一个机构账户下建立了一个私人回购协议。我们有三个开发人员(包括我自己),他们在GitHub拥有自己的帐户,并且拥有私人回购的管理员权限 在处理项目时,我们克隆repo,然后创建一个“dev”分支。我们每个人都从自己的开发分支工作,并将更改推送到GitHub上的“开发”分支 我们希望将这个dev分支放到远程服务器上,以便在将其合并到主分支(应该是干净的/始终可部署的)之前测试组合代码的工作情况 从这里开始,我们将遵循上面的文章步骤,即通过S

请注意,这是我一直关注的原始文章:

给你一点背景:我们在一个机构账户下建立了一个私人回购协议。我们有三个开发人员(包括我自己),他们在GitHub拥有自己的帐户,并且拥有私人回购的管理员权限

在处理项目时,我们克隆repo,然后创建一个“dev”分支。我们每个人都从自己的开发分支工作,并将更改推送到GitHub上的“开发”分支

我们希望将这个dev分支放到远程服务器上,以便在将其合并到主分支(应该是干净的/始终可部署的)之前测试组合代码的工作情况

从这里开始,我们将遵循上面的文章步骤,即通过SSH连接到服务器,转到网站所在的相关目录并运行以下命令

git克隆git@github.com:Organization/REPO.git dev

我们遇到的第一个问题是服务器返回了消息

Cloning into dev...
ssh: connect to host github.com port 22: Connection refused
fatal: The remote end hung up unexpectedly
…我希望它能向我们索要密码

所以我们尝试了HTTP url

git克隆https://USER@github.com/organization/REPO.git dev

…您会注意到,在克隆时HTTP url现在使用我自己的用户名。我输入密码,它会显示
克隆到dev…
,但随后它会显示以下错误

error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://Integralist@github.com/StormCreative/MoneyRepublic.com.git/info/refs
fatal: HTTP request failed
…我不理解这个错误

那么,我们如何将这个私有回购克隆到我们的服务器上呢

感谢您的帮助

亲切问候,,
标记第一个问题是因为您没有本地rsa密钥链接到您在GitHub上的帐户(是的,您将rsa密钥链接到您的帐户,组织也链接到您的帐户)

在尝试克隆存储库的本地计算机(或远程服务器)中,需要生成rsa密钥:

ssh-keygen -t rsa
生成密钥时,您选择了密码和存储id_rsa.pub文件的位置,该文件实际上包含密钥


在GitHub上,您需要将此密钥(id_rsa.pub的确切内容)添加到您帐户管理面板上的ssh密钥中。

我不确定是否可以帮助您解决这个错误,我认为这是SSL问题。但我可以建议你另一种方法。我以以下方式将博客部署到服务器:

  • 我已经在名为deploy的服务器上创建了一个git repo
  • 我已将此部署repo作为远程repo添加到本地repo
  • 当我想要部署时,我会将更改推送到这个repo
  • 在我的部署repo中,我设置了一个post-receive钩子,这样每当推送更改时,它都会自动在Apache的hosts目录中的服务器上克隆repo,该目录为我的网站的最新版本提供服务
如果你需要的话,我可以提供我的帖子的要点。如果您的网站位于rails中,则可以使用Capistrano进行部署

编辑:这是我的帖子

GIT_REPO=$HOME/aliirz.git
PUBLIC_WWW=/var/www/myrepo

git clone $GIT_REPO $PUBLIC_WWW
exit
问候


编辑:上面drgomesp的答案完全是解决方案。我突然想到,您需要将SSH密钥连接到Github

可能重复感谢您的回复。我尝试使用命令SSH-keygen-t rsa-C“my github email account”生成SSH,在它询问“输入保存密钥的文件(/root/.SSH/id\u rsa):”之后,我放置了“github\u标记”,然后输入了一个密码短语(两次)。但是我找不到需要复制的SSH密钥数据,以便将其添加到GitHub的页面?我还假设
/root/.SSH/id\u rsa
可以保存多个密钥,因此我可以在输入密码短语之前输入名称
GitHub\u mark
。这就是为什么他们建议您不要在“输入保存密钥的文件(/root/.ssh/id\u rsa)”部分。只需按Enter键,选择密码,公钥将位于该确切路径(/root/.ssh/id\u rsa)中。因此,为了明确起见,如果我不提供名称,只需按enter键,那么我只能生成一个SSH密钥用于在这个私有repo中进行克隆/拉入?其他有权访问我的服务器的开发人员如何,因为他们也需要能够git拉入/克隆等。他们是否能够使用GH帐户中的SSH密钥?每个本地计算机(每位开发商)有自己的rsa密钥。这就是作为密钥的首要意义。我假设您的本地开发机器只供您使用,这是我们开发人员最常用的方式。基本的是:每台机器都有自己的公钥,因此您需要将所有密钥链接到您的存储库;或者,如果repo属于组织。感谢您的反馈-我正在等待@drgomesp的一些反馈,所以是的,我希望看到post-receive-hook,因为这也会有所帮助。是的,如果您可以发送您的post-receive-hook,请发送,因为drgomesp的解决方案目前似乎不可行(参见我们的讨论)