EC2:如何克隆Git存储库

Dav*_*ams 10 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
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?我也尝试过SSH转发,但是没有用.

Yaf*_*ang 6

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

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

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

    $ ssh-keygen -t rsa -b 4096 -C [your email address]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将密钥保存到默认目录〜/ .ssh

  3. 输入您选择的密码。

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

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

    $ chmod 600 ~/.ssh/id_rsa
    
    Run Code Online (Sandbox Code Playgroud)
  6. 将您的SSH私钥添加到ssh-agent并将密码短语存储在钥匙串中。

    $ ssh-add -k ~/.ssh/id_rsa
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  11. 遵循本文https://help.github.com/articles/error-permission-denied-publickey/来查看密钥是否有效并进行调试。

  • 很好,但是,当运行`ssh-add -k〜/ .ssh / id_rsa`时,出现“无法打开与身份验证代理的连接”。根据https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent的介绍,我首先需要使用`eval启动ssh-agent $(ssh-agent -s)`。这似乎已经解决了问题。 (2认同)
  • 另外,`pbcopy &lt; ~/.ssh/id_rsa.pub` 给了我“pbcopy:找不到命令”。`cat ~/.ssh/id_rsa.pub` 工作并将公钥发送到屏幕,然后我可以将其复制/粘贴到我的 GitHub 帐户中。 (2认同)

ian*_*njs 1

看到这个答案

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