【问题标题】:EC2: How to Clone Git RepositoryEC2:如何克隆 Git 存储库
【发布时间】:2013-11-04 23:49:35
【问题描述】:

我正在尝试从 github.com 将私有 repo 签出到我在 EC2 上的开发实例上。

$ git clone git@github.com:Org/Product.git
Initialized empty Git repository in /home/ec2-user/Product/.git/
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我该怎么做?我也尝试了 SSH 转发,但没有成功。

【问题讨论】:

  • 您是否正确设置了 SSH 密钥?
  • 我不确定,你能告诉我要检查什么来验证吗?
  • 尝试运行ssh -v git@github.com。您应该从 github 收到一条带有您的用户名的消息,但如果有问题,您可能不会收到。 -v 将为您提供详细的输出,以帮助您查看 ssh 正在做什么并可能跟踪问题。

标签: git ssh amazon-ec2


【解决方案1】:

this answer

您只需要设置您的公钥和私钥即可通过 GitHub 进行身份验证,如下所述:https://help.github.com/articles/generating-ssh-keys

【讨论】:

    【解决方案2】:

    在使用 git 或在 ec2 实例上设置 ssh 密钥时,请将其视为您的 m/c。因此,应该执行生成 ssh 密钥、将 id_rsa.pub 密钥添加到 git 帐户上接受的 ssh 密钥等步骤。复制 ssh 密钥后,检查连接是否建立。 查看上述答案中的链接,因为它们直接指向您的解决方案。

    【讨论】:

    • 我需要做的就是将我的用户名@github 放在克隆语句中。很奇怪,但它奏效了。
    【解决方案3】:

    我们需要生成一个 SSH 密钥(两个文件 - 一个您与世界共享的公钥和一个您保持安全的私钥),我们将与我们的 Git 帐户相关联。这将允许我们在 EC2 实例上克隆我们的 Git 存储库,而无需手动输入您的用户名和密码,或者(更糟糕的是)在使用脚本时以明文形式输入您的密码。

    您可以在本地目录中生成 SSH 密钥,然后复制到您的 EC2 实例。您也可以直接在您的 EC2 实例上执行此操作,但每次在新实例上生成 SSH 密钥对时,您都需要在 GitHub 中注册新密钥。

    1. 在您的本地终端中,创建一个 SSH 密钥,替换您的电子邮件地址。

      $ ssh-keygen -t rsa -b 4096 -C [your email address]
      
    2. 将密钥保存到默认目录~/.ssh

    3. 输入您选择的密码。

    4. 通过转到目录并键入“ls -l id_rsa*”来检查公钥和私钥是否在 /.ssh 中。您应该会看到两个文件,名为“id_rsa.pub”的公钥和名为“id_rsa”的私钥

    5. 在终端中,确保此私钥不可公开查看。

      $ chmod 600 ~/.ssh/id_rsa
      
    6. 将您的 SSH 私钥添加到 ssh-agent 并将您的密码存储在钥匙串中。

      $ ssh-add -k ~/.ssh/id_rsa
      
    7. 进入你的 GitHub 账户下的设置,然后点击 SSH keys 和 New SSH key

    8. 在终端中将您的公钥复制到剪贴板。或者在 EC2 终端上显示:

      $ pbcopy < ~/.ssh/id_rsa.pub   # copy to clipboard
      $ cat ~/.ssh/id_rsa.pub  # If you prefer appear on screen
      
    9. 将此粘贴​​到 GitHub 上的密钥框中,然后单击保存。您的所有 Git 存储库都可以使用此密钥。

    10. 有时您需要将公钥移动到“/.ssh/authorized_keys”以使公钥在 LINUX 中工作。

      $ mkdir ~/.ssh  # if you don't have /.ssh/ folder
      $ chmod 700 ~/.ssh
      $ touch ~/.ssh/authorized_keys
      $ chmod 600 ~/.ssh/authorized_keys
      $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      
    11. 关注这篇文章https://help.github.com/articles/error-permission-denied-publickey/,看看密钥是否有效并调试。

    【讨论】:

    • 这很好,但是,当运行 ssh-add -k ~/.ssh/id_rsa 时,我得到“无法打开与您的身份验证代理的连接”。根据help.github.com/en/articles/…,我需要先用eval $(ssh-agent -s) 启动ssh-agent。这似乎成功了。
    • 另外,pbcopy &lt; ~/.ssh/id_rsa.pub 给了我“pbcopy:找不到命令”。 cat ~/.ssh/id_rsa.pub 工作并将公钥发送到屏幕,然后我可以将其复制/粘贴到我的 GitHub 帐户中。
    猜你喜欢
    • 2013-07-14
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    相关资源
    最近更新 更多