.ssh配置与amazon ec2和git

.ssh配置与amazon ec2和git,git,amazon-ec2,config,public-key,Git,Amazon Ec2,Config,Public Key,我在从AmazonEC2服务器克隆git存储库时遇到了一个奇怪的问题。它在我的一台运行ubuntu 12.04的计算机上运行没有任何问题,而在另一台使用12.10的计算机上,它给了我一个错误: ssh: Could not resolve hostname ec2server: Name or service not known fatal: The remote end hung up unexpectedly 好像它不识别我的配置文件。我使用以下git命令进行克隆: sudo git

我在从AmazonEC2服务器克隆git存储库时遇到了一个奇怪的问题。它在我的一台运行ubuntu 12.04的计算机上运行没有任何问题,而在另一台使用12.10的计算机上,它给了我一个错误:

ssh: Could not resolve hostname ec2server: Name or service not known  
fatal: The remote end hung up unexpectedly
好像它不识别我的配置文件。我使用以下git命令进行克隆:

sudo git clone ec2server:/var/www/project.git

这两个配置文件在~./ssh内的两台计算机上都是相同的,内容如下:

Host ec2server
   Hostname ec2XXX.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/mykey.pem
如果用实际地址替换ec2server,则会出现以下错误:

Cloning into 'project'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

提前感谢。

这通常是一个权限问题。
配置文件的父目录上的
chmod
在两台计算机之间可能不同。
(我说的不仅仅是直接的父目录
.ssh
,还有所有的父目录)

请参阅“”,但也要知道,如果任何父目录对于组或世界都是可写的,ssh将无法工作


还要注意,您的第二个命令不正确,应该是:

git clone ubuntu@ec2xxx.compute-1.amazonaws.com/var/www/project.git
否“
(a“
”表示使用类似于
的语法的
配置
文件)

只有当您有
~/.ssh/id\u rsa
~/.ssh/id\u rsa.pub
时,它才能工作。
如果您有mykey.pem,那么您需要一个ssh的
config
文件来知道您的公钥和私钥在哪里,这意味着只有这样才能工作:

git clone ec2server:/var/www/project.git

另一个检查(在此之后)是检查是否存在任何DNS/DHCP问题(有点类似于“”)


最近,我不得不重新安装保持工作配置的系统,但我还没有成功地复制它,因此这与linux版本无关(很可能)。我设法做到的是,我设法使用上面提到的原始脚本将存储库克隆到我的主目录中。在这里,它正确地选择了名称,但是如果我导航到/var/www,我之前所做的,它只会给我同样的错误:找不到ec2server。因此,我认为问题与权限+命令组合有关。如果有人能想出如何使它发挥作用,我会将他的回答标记为正确答案,直到那时我会将我的回答标记为正确答案,因为这是最接近正确答案的

更新


我发现了问题所在:我必须更改/var/www文件夹的权限才能克隆到该目录中。现在是777(仅用于本地计算机上的开发人员)。

但parrent目录是主目录directory@Pio您是指您在
/home/yourLogin
中的
config
文件,而不是
/home/yourLogin/.ssh
?@Pio有关ssh的配置文件示例,请参见或。@Pio那么,我的答案是正确的。在阅读了100篇不同的文章之后,使用“git clone ec2server:/var/www/project.git”为我解决了这个问题。谢谢。听起来不错,而且对你很有用,所以+1。我的回答不够具体。
git clone ec2server:/var/www/project.git
Host ec2server
   Hostname 1xx.xxx.xxx.xxx # ip address of ec2XXX.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/mykey.pem