19

我正在尝试将来自 github.com 的私有存储库签出到我在 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 转发,但没有成功。

4

3 回答 3

20

我们需要生成一个 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”的私钥</p>

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

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

    $ ssh-add -k ~/.ssh/id_rsa
    
  7. 转到您的 GitHub 帐户下的设置,然后单击 SSH 密钥和新建 SSH 密钥

  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/查看密钥是否有效并进行调试。

于 2018-07-29T20:40:04.387 回答
1

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

于 2013-11-19T09:43:22.957 回答
0

看到这个答案

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

于 2013-10-27T00:19:25.777 回答