【问题标题】:Git remote pull using GitHub deployment keys - Permission Denied使用 GitHub 部署密钥的 Git 远程拉取 - 权限被拒绝
【发布时间】:2016-04-29 12:12:22
【问题描述】:

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

注意:我在 AWS EC2 / Ubuntu 14.04.3

  1. 运行ssh-keygen -t rsa -b 4096 -C "ownersEmail@gmail.com",然后将它们保存为 id_rsa 和 id_rsa.pub 在 ~/.ssh/
  2. 部署公钥 (id_rsa.pub) 已添加到 GitHub 在线 UI 的部署密钥部分
  3. 该目录已克隆到 /var/www/ 目录中,通过 HTTPS 拉取操作一切正常
  4. 尝试sudo git pull git@github.com:ownersUsername/OurRepo.git会出现以下错误

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

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

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

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

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

部署密钥在使用时出现。已经在这个问题上待了超过 4 个小时,任何将不胜感激,谢谢。

【问题讨论】:

    标签: linux git ubuntu github ssh


    【解决方案1】:

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

    你想做的是:

    1. 授予您的用户/组对/var/www 的写入权限
    2. 以用户而非 root 用户身份运行拉取/克隆。

    【讨论】:

      【解决方案2】:

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

      git pull <remote> <branch>
      

      您需要 clone 命令的完整网址

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

      要测试您的 ssh 密钥是否正确,请使用:

      git fetch --all --prune
      

      【讨论】:

      • 嘿,即使尝试克隆,我似乎仍然收到错误:权限被拒绝(公钥)。致命:无法从远程存储库中读取。请确保您拥有正确的访问权限并且存储库存在。
      • 你在代理后面吗?还要检查您的 .gitconfig 文件以确认您没有任何协议配置 (htp/https/git)
      猜你喜欢
      • 1970-01-01
      • 2012-05-23
      • 2018-05-08
      • 1970-01-01
      • 2021-11-11
      • 2011-11-25
      • 2012-01-18
      • 2012-04-25
      相关资源
      最近更新 更多