我正在尝试将我的私有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
命令之前进行任何配置?
任何帮助都会很棒。谢谢!
答案 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存储库中运行脚本”的更完整教程: