使用GitHub部署密钥进行Git远程拉取 - 权限被拒绝

时间:2016-04-29 12:12:23

标签: linux git ubuntu github ssh

我已经完成了以下步骤,使用我们的git repo设置ssh部署密钥,以便能够在没有用户名和密码的情况下进行git pull:

注意:我使用的是AWS EC2 / Ubuntu 14.04.3

  1. 运行ssh-keygen -t rsa -b 4096 -C "ownersEmail@gmail.com"然后将这些保存为〜/ .ssh /
  2. 中的id_rsa和id_rsa.pub
  3. 部署公钥(id_rsa.pub)添加到部署密钥部分的GitHub在线UI上
  4. 目录已经克隆在/ var / www /目录中,这可以通过HTTPS完成所有工作
  5. 尝试sudo git pull git@github.com:ownersUsername/OurRepo.git并收到以下错误
  6.   

    权限被拒绝(publickey)。   致命的:无法从远程存储库读取。

         

    请确保您拥有正确的访问权限   存储库存在。

    另一个注意事项:此存储库在其他用户帐户下是私有的。

    另外,当我尝试ssh git@github.com时,我得到了:

      

    您好userName / Repo!您已成功通过身份验证,但GitHub不提供shell访问权限。   与github.com的连接已关闭。

    部署密钥随着使用而出现。现在已经讨论了这个问题超过4个小时了,非常感谢,谢谢。

2 个答案:

答案 0 :(得分:7)

问题是你是否使用以root身份运行命令的sudo,它会尝试使用root用户密钥而非用户的密钥。

您想要做的是:

  1. 授予您的用户/群组对/var/www
  2. 的写入权限
  3. 运行pull / clone是用户不是root。

答案 1 :(得分:0)

当您执行git pull时,您不需要该链接。

git pull <remote> <branch>

您需要克隆命令的完整网址

sudo git clone git@github.com:ownersUsername/OurRepo.git

要测试你的ssh密钥是否合适,请使用:

git fetch --all --prune