EC2:如何克隆Git存储库

时间:2013-10-25 18:25:46

标签: git ssh amazon-ec2

我正在尝试将来自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转发,但那不起作用。

3 个答案:

答案 0 :(得分:2)

我们需要生成一个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密钥和New 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/进行操作,以查看密钥是否有效并进行调试。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

this answer

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