.ssh config with amazon ec2 and git

18,759

Solution 1

Recently I had to re-install the system which held the working configuration and I have not managed to replicate it, so it's not about the linux version (very likely). What I managed to do, is that I managed to use the mentioned original script to clone the repository into my home directory. Here it picked up the name correctly, but if I navigated into /var/www, what I was doing before, it just gave me the same error: could ec2server not found ... . So I figure the problem has to do something with the permissions + commands combination. If anyone can figure it out how to make it work, I will mark he's response as a correct answer, until then I am marking mine as the correct one, since this is the closest to the correct.

UPDATE

I figured it out what was the problem: I had to change the permission on /var/www folder in order to be able to clone into that directory. Now it's 777 ( used only for dev on a local machine).

Solution 2

It usually is a permission issue.
The chmod on the parent directories of your config file might be different between your two computers.
(and I am not talking about just the immediate parent directory .ssh, but also all the parent directories)

See "Git SSH authentication", but also know that if any of the parent directories is writable for group or world, ssh won't work.


Note also that your second command is not right, and should be:

git clone [email protected]/var/www/project.git

no ':' (a ':' means using a config file, with an scp-like syntax)

it can only work if you have ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub though.
If you have mykey.pem, then you need a config file for ssh to know where are your public and private keys, which means only this can work:

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

One other chack (after this thread and this forum) is to check if there is any DNS/DHCP issue (a bit like in "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
Share:
18,759

Related videos on Youtube

Pio
Author by

Pio

"A day without sunshine is like, you know, night." SOreadytohelp

Updated on June 08, 2022

Comments

  • Pio
    Pio almost 2 years

    I have a strange problem with cloning a git repository from an amazon ec2 server. It works without any problems on one of my computers running ubuntu 12.04, while on another one using 12.10 it gives me an error:

    ssh: Could not resolve hostname ec2server: Name or service not known  
    fatal: The remote end hung up unexpectedly
    

    It's like it is not recognizing my config file. I use the following git command to clone :

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

    or

    sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git
    

    The two config files are identical on both computers, inside the ~./ssh with the following content:

    Host ec2server
       Hostname ec2XXX.compute-1.amazonaws.com
       User ubuntu
       IdentityFile ~/.ssh/mykey.pem
    

    If I substitute the ec2server with the actual address I get the following error:

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

    Thanks in advance.

  • Pio
    Pio over 11 years
    But the parrent directory is the home directory
  • VonC
    VonC over 11 years
    @Pio You mean your config file in in /home/yourLogin, instead of /home/yourLogin/.ssh?
  • VonC
    VonC over 11 years
    @Pio see stackoverflow.com/a/10042145/6309 or stackoverflow.com/a/8172628/6309 for examples of config files for ssh.
  • VonC
    VonC over 11 years
    @Pio then, my answer stands.
  • Pio
    Pio over 11 years
    Yes, the permissions were different. I made them to be the same. But still, the same error pops up. I think there might be a misconfiguration in git since it does not recognize the hostname of the server if I do not explicitly use it.
  • Michel Feldheim
    Michel Feldheim over 11 years
    @Pio Just fyi ~ is a shortcut for the current users home directory (e.g. /home/youruser/). Are you able to SSH into the box using this key and username? (e.g. using Putty from a windows machine)
  • Pio
    Pio over 11 years
    Yes, I am aware of the meaning of ~ . I am also able to log into the amazon ec2 server via ssh. It works perfectly.
  • VonC
    VonC over 11 years
    @Pio I have edited my answer: can you check if git clone [email protected]/var/www/project.git works on both your computers? (source: kuttler.eu/post/git-clone-ssh-could-not-resolve-hostname or yuanjie.name/entry/git-complains-ssh-hostname-resolving)
  • Pio
    Pio over 11 years
    I tried it, but it is not working. The syntax is not right: since like this it searches for a repository named [email protected]/var/www/project.git and gives me the error of not finding the repository. If I put : between then I get the error mentioned in my post of permission denied.
  • VonC
    VonC over 11 years
    @Pio I understand. It is best then to stick with the scp-syntax and your config file.
  • VonC
    VonC over 11 years
    @Pio following openshift.redhat.com/community/forums/openshift/…, would using the IP instead of the amazon server name works better? I have edited the answer to mention that possibility.
  • VonC
    VonC over 11 years
    Sounds good, and it works for you, so +1. My answer was not specific enough.
  • Marina Martin
    Marina Martin about 11 years
    After reading 100 different articles, using "git clone ec2server:/var/www/project.git" solved it for me. THANK YOU.