git - .ssh 配置亚马逊 ec2 和 git

标签 git amazon-ec2 config public-key

我在从亚马逊 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/

相关文章:

Git 日志条目显示两次但具有不同的提交 ID

移动存储库后 git diff 报告模式发生变化

git - 无法将文件更改为未跟踪

java - 检测 EC2 实例何时关闭(Java SDK)

php - 在 Linux 上的 Zend 配置 ini 文件中包含花括号内的变量

git - 试图用 git for windows 理解 wincred - 困惑

database - 从 MongoDB Atlas 迁移我的数据

amazon-web-services - AWS EC2 : upgrade from AMI 1 to AMI 2

java - 是否可以将 String "1L"转换为相应的 Long 值?

c# - 是否可以在配置中定义一个变量?