git clone hangs forever on github

When I follow point 5 (Test everything out) in the github guide, the ssh command also hangs forever. According to the guide, I should be presented with a message that "Github does not provide shell access". Below is my output from ssh -vT [email protected]

debug1: Authentication succeeded (publickey).
Authenticated to github.com ([207.97.227.239]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_MESSAGES = en_US.UTF-8
debug1: Sending env LC_COLLATE = en_US.UTF-8
debug1: Sending env LANG = da_DK.UTF-8
debug1: Sending env LC_CTYPE = en_US.UTF-8

Solution 1:

GitHub offers a few different ways to connect to the remote repo. I am behind an onerous firewall. All methods also hang except using http (not https).

For example, the JavaHamcrest project offers (anonymously):

  • https://github.com/hamcrest/JavaHamcrest.git
  • [email protected]:hamcrest/JavaHamcrest.git
  • git://github.com/hamcrest/JavaHamcrest.git

You may also try:

  • http://github.com/hamcrest/JavaHamcrest.git

Finally, prefix your UNIX command with GIT_TRACE=1 and GIT_CURL_VERBOSE=1, and use Git option --verbose for maximum debug output.

Example: env GIT_TRACE=1 GIT_CURL_VERBOSE=1 git clone --verbose http://github.com/hamcrest/JavaHamcrest.git

Solution 2:

In my case port 22 was being blocked by a firewall, cloning via https may not work if you have 2-factor authentication enabled. Instead edit your .ssh config to use another port. In your terminal:

nano ~/.ssh/config

then add this:

Host github.com
  Hostname ssh.github.com
  Port 443

Solution 3:

Try using HTTPS instead of SSH. Port 22 might be blocked by a firewall.

E.g. instead of:

git clone [email protected]:repo-owner/my-project.git

Connect via HTTPS:

git clone https://[email protected]/repo-owner/my-project.git