我在从亚马逊 ec2 服务器克隆 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
或
sudo git clone ec2xxx.compute-1.amazonaws.com:/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
,还有 所有 父目录)
参见“Git SSH authentication”,但也知道如果任何父目录对于组或世界是可写的,ssh 将无法工作。
另请注意,您的第二个命令不正确,应该是:
git clone ubuntu@ec2xxx.compute-1.amazonaws.com/var/www/project.git
没有':
'(':
'意味着使用一个config
文件,一个 >scp
-类似语法)
它只有在你有 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
时才能工作。
如果你有 mykey.pem,那么你需要一个 config
文件让 ssh 知道你的公钥和私钥在哪里,这意味着只有这个可以工作:
git clone ec2server:/var/www/project.git
另一个检查(在 this thread 和这个 forum 之后)是检查是否存在任何 DNS/DHCP 问题(有点像“Working with git behind a dynamic DNS ”)。
Host ec2server
Hostname 1xx.xxx.xxx.xxx # ip address of ec2XXX.compute-1.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/mykey.pem
关于git - .ssh 配置亚马逊 ec2 和 git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14423652/