Git克隆EC2实例权限错误

时间:2018-07-17 11:56:29

标签: git github amazon-ec2 ssh

我正在尝试将我的私有github存储库克隆到我的EC2实例,但是看来我可能采取了错误的步骤来允许Github连接到EC2实例。在我在路径git clone git@github.com:username/repo.git上创建的文件夹中运行/var/www/app后,系统会告诉我验证Githbuc.com主机的身份,并出示两个RSA密钥指纹(我认为是我的存储库中的那个),然后向我发送一个错误:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

在运行git clone命令之前,我将.pem中找到的SSH密钥复制到了我的Github SSH密钥。这些EC2凭据是我用来通过SSH进入实例的凭据。这是使用错误的钥匙吗?我知道EC2实例在.ssh/authorized_keys中也有公共密钥,但是我感觉它们与用于SSH进入实例的公共密钥相同。

我错过了一步吗?我需要在/var/www/app目录中初始化git还是在git clone命令之前进行任何配置?

任何帮助都会很棒。谢谢!

2 个答案:

答案 0 :(得分:0)

您必须转到EC2设置上的安全组并打开对GIT的访问。该密钥可能很好,因为它是您的密钥,但是您必须修改凭据和安全组。

以同样的方式,您可以修改凭据以仅打开对特定IP的访问权限并执行类似的操作。默认情况下,仅对内部访问不开放。

关于

DH

答案 1 :(得分:0)

确保在本地计算机〜/ .ssh /上生成ssh密钥对,并且公共密钥已添加到GitHub帐户中。

要将ssh密钥对从本地目录克隆到EC2实例,请遵循以下步骤:

将公钥克隆到您的EC2实例:

$ cat ~/.ssh/id_rsa.pub | ssh -i ~/.ssh/your_pem.pem ubuntu@your_dns "cat >> .ssh/authorized_keys"

如果“ .ssh / authorized_keys”不存在,请登录到您的EC2实例并创建目录:

$ ssh -i ~/.ssh/***.pem ubuntu@[Your Public DNS]
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ exit  # exit EC2 terminal, this will not stop your instance

然后继续将我们的GitHub私钥安全复制到EC2实例。 “ UserKnownHostsFile”和“ StrictHostKeyChecking”选项将删除主机验证提示(计算机要求您键入“是”或“否”以继续)。如果我们想在脚本中运行这些操作,则必须删除它。

$ scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ~/.ssh/your_pem.pem ~/.ssh/id_rsa ubuntu@your_dns:~/.ssh/

您应该能够使用ssh密钥对连接到git。

如果无法解决,请参阅“使用Amazon EC2在GitHub存储库中运行脚本”的更完整教程:

https://github.com/yafangy/Tutorial-using-Amazon-AWS-EC2-run-scripts-GitHub/tree/master#method-2-clone-git-to-ec2-instance-recommended