I am under a proxy and I am pushing in to git successfully for quite a while.
Now I am not able to push into git all of a sudden.
I have set the RSA key and the proxy and double checked them, with no avail and git is throwing me the error shown in the title of the page.

- 8,308
- 4
- 20
- 26
-
21Create a hotspot on your mobile device, connect via your mobile device, then `git push`. Worked for me. – zundi Sep 12 '17 at 19:19
-
1For Jenkins, see: [Why is Jenkins failing when fetching from git?](https://stackoverflow.com/q/24813816/55075) – kenorb Jul 29 '19 at 22:17
-
5The same problem happened to me in the UK with Virgin Media. I tried to push/pull to GitHub via ssh at home and no luck but at work was fine. So I realised that I got problems with my ISP. The simple fix for me was to use Cloudflare DNS `1.1.1.1` instead of a default one that's why @zundi succeed through a mobile hotspot. – Vladyslav Krylasov Mar 18 '20 at 12:59
-
3This worked for me -> https://gist.github.com/Tamal/1cc77f88ef3e900aeae65f0e5e504794 – Imran May 03 '21 at 18:41
-
Very weird! But I closed my Postman and it solved it!!! (Win10) – aderchox Dec 14 '21 at 21:06
-
@zundi I'm at an airbnb place and the host has done some funky things to his wifi. Thanks to you I was able to push. – Artur Müller Romanov Mar 18 '22 at 17:29
-
@zundi weird, but worked! Thanks! – jsibs Aug 09 '22 at 17:39
-
@VladyslavKrylasov I have had the exact same problem, also uk virgin media, and tried your approach. Worked perfectly! Thanks! – Joao Pincho Sep 25 '22 at 18:39
31 Answers
For my case none of the suggested solutions worked so I tried to fix it myself and I got it resolved.
For me I am getting this error on my AWS EC2 UBUNTU instance, what I did to resolve it was to edit the ssh config (or add it if it does not exist).
sudo nano ~/.ssh/config
And I added the following
Host github.com
Hostname ssh.github.com
Port 443
Then, run the command ssh -T git@github.com
to confirm if the issue is fixed.
According to this
Sometimes, firewalls refuse to allow SSH connections entirely. If using HTTPS cloning with credential caching is not an option, you can attempt to clone using an SSH connection made over the HTTPS port. Most firewall rules should allow this, but proxy servers may interfere
Hopefully this helps anyone else who's having the same issue I did.

- 7,839
- 2
- 14
- 26
-
9This solution worked fine for me, although it didn't solve the issue for GitLab. In that case, please consider that GitLab.com runs a second SSH server that listens on the commonly used port 443, which is unlikely to be firewalled. All you have to do is edit your `~/.ssh/config` and change the way you connect to GitLab.com. In that case, see this article: https://about.gitlab.com/2016/02/18/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port/ – cavalcantelucas Dec 05 '18 at 03:14
-
2Hi, i had a same problem, my router is from NET and him block the 22 port. That config solved my problem definitely – Pedro Soares Jan 14 '19 at 17:40
-
-
3After hours of finding anwers... you're CHAMP, anyway why do we need to change github.com to ssh.github.com? I still don't get it – Robert Tirta Nov 20 '19 at 22:40
-
For create a ssh config file : https://linuxize.com/post/using-the-ssh-config-file/ – DLx Sep 16 '20 at 08:25
-
This solution worked for me as I'm working from an air bnb and I don't know which ports the home's router blocks. Thanks a lot! – Pericolo Nov 09 '20 at 15:30
-
-
I just stopped my router wifi and switched on my phone hotspot, connect to laptop, then push again, yes it's solved!! thank you – Sabbir Sobhani Aug 19 '21 at 16:49
-
I had this problem for a long time, I thought it was my router that is blocking the ports, until I dicifi investigate well and download that possibility. Thank you very much, now it works very well. – MrEduar Aug 28 '21 at 19:04
-
I did this and now get this error: kex_exchange_identification: Connection closed by remote host....any ideas? – Samantha Garcia Dec 08 '21 at 14:52
-
For who didn't install nano (maybe for windows user), you could try `vim ~/.ssh/config` to edit the config. – paulwen Dec 14 '22 at 11:25
-
If you put `RequestTTY no` and `User git` in your config, you don't have to type `-T` or `git@` in your `ssh` command. – Michael Feb 08 '23 at 22:06
-
https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port – solstice333 Mar 08 '23 at 22:03
-
-
The reason could be the firewall modification as you are under a network.(In which case they may deliberately block some ports)
To double check if this is the reason ... do
ssh -T git@github.com
this should timeout.
If that's the case use http protocol instead of ssh this way
just change your url in the config file to http.
Here is how :-
git config --local -e
change entry of
url = git@github.com:username/repo.git
to
url = https://github.com/username/repo.git

- 441
- 9
- 17

- 8,308
- 4
- 20
- 26
-
15
-
3fatal: unable to access 'https://gitlab.com:******.git/': Port number ended with 'f' – Fakher Sep 05 '17 at 14:06
-
I had to remove the .git from the url in order for this to work for me. url = https://github.com/username/repo/ – Jesse Buss Dec 21 '17 at 15:38
-
restarting my system did the job...sometimes your proxy gets updated once your systems restarts. – Max Jun 06 '18 at 10:37
-
38using https instead for ssh is not the right solution. There must a way to set proxy in git config and in ssh settings to solve this. – shijin Dec 01 '18 at 15:49
-
@VihariPiratla ok this works but how can i solve the port 22 unreacheable , so i can keep using ssh key – valik Dec 29 '18 at 16:33
-
This happens when I am in my university's network, it blocks some websites. Changing to http or changing the network solves the issue. – Soon Santos Jan 14 '19 at 10:33
-
7
-
17
-
As he suggested, I directly cloned my repo with git `https://github.com/USERNAME/REPO.git`!! – Wey Shi Mar 29 '20 at 05:34
-
1As @FinlayPercy mentioned, it was the Virgin Media wifi causing the issue. Used Personal Hotspot from Phone network and it worked. I was trying to push repo to github – Naishta Nov 22 '22 at 22:10
inside the .ssh folder Create "config" file
Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

- 1,029
- 9
- 4
-
2
-
3
-
-
The details from Mahan_F are here: https://stackoverflow.com/a/52817036/1603480 – Jean-Francois T. Aug 16 '21 at 07:18
Basic URL Rewriting
Git provides a way to rewrite URLs using git config. Simply issue the following command:
git config --global url."https://".insteadOf git://
Now, as if by magic, all git commands will perform a substitution of git://
to https://
source: git:// protocol blocked by company, how can I get around that?
-
2Thanks! Ours was during the Jenkins build so I couldn't manually edit the git file (I don't have the git credentials for the jenkins account) - so this was very useful. – Phil Mar 27 '15 at 15:32
-
2This is great. I've added git aliases for each to easily switch – random-forest-cat Mar 31 '15 at 23:59
-
20Concerning github, the command should be: `git config --global url."https://github.com/".insteadOf git@github.com:`. Notice the differences: `@` becomes `//` and `:` becomes `/`. – Frodon Jan 21 '16 at 14:38
-
3
I faced the same problem and couldn't find a working solution. I faced this problem while setting up a local server and the git couldn't connect through my proxy network but my workstation could. This was the output when I ran the command
ssh -vT git@github.com
ubuntu@server:~$ ssh -vT git@github.com
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/ubuntu/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [13.234.176.102] port 22.
So I tried using an SSH connection made over the HTTPS port by editing the config file ~/.ssh/config
but to no avail.
Host github.com
Hostname ssh.github.com
Port 443
Finally, I found this article which solved and exposed the real problem.
# github.com
Host github.com
Hostname ssh.github.com
ProxyCommand nc -X connect -x <PROXY-HOST>:<PORT> %h %p
Port 443
ServerAliveInterval 20
User git
This is my config file and now git works perfectly well through ssh!

- 333
- 2
- 6
-
I particularly had to add `Hostname` and `Port` lines to my config, and viola, it works now. – Rafs Sep 22 '21 at 12:11
-
2
-
-
1
-
1If proxy requires authentication: https://adangel.org/2020/10/15/github-behind-proxy/ – Juan Rojas Jan 20 '23 at 22:07
Quick workaround: try switching to a different network
I experienced this problem while on a hotspot (3/4G connection). Switching to a different connection (WiFi) resolved it, but it's just a workaround - I didn't get the chance to get to the bottom of the issue so the other answers might be more interesting to determine the underlying issue

- 6,473
- 4
- 55
- 72
-
3I switched from the WiFi to the 4G and it worked. I don't understand either. – Adam Casey Feb 13 '19 at 17:31
For me, the problem was from ISP side. The Port number was not enabled by the Internet Service Provider. So asked them to enable the port number over my network and it started working.
Only to test: Connect to mobile hotspot and type ssh -T git@bitbucket.org or git pull.
If it works, then ask your ISP to enable the port.

- 225
- 3
- 4
-
This resolved the issue for me. Switched to a 4G hotspot and `git push` worked. But I turned off the hotspot, switched back to the old network...and now git works again. Who knows? – AlainD Jan 25 '22 at 17:07
This answer is based on the comment to the main question from @zundi (to whom credit should go, thanks zundi):
- Create a hotspot on your mobile device and connect to the hotspot
git push
- Turn off the hotspot on your mobile device and reconnect to the original network
git push
continues to work
I do not know why temporarily connecting to a hotspot magically "kickstarts" the original network connection.

- 5,413
- 6
- 45
- 99
Execute:
nc -v -z <git-repository> <port>
Your output should look like:
"Connection to <git-repository> <port> port [tcp/*] succeeded!"
If you get:
connect to <git-repository> <port> (tcp) failed: Connection timed out
You need to edit your ~/.ssh/config file. Add something like the following:
Host example.com
Port 1234
-
7I'm not sure everyone is going to have `nc` installed. What is that supposed to be? Netcat or something? – Hack-R Apr 08 '18 at 21:55
In a similar failure mode as Ludder, I was getting this error when I hadn't yet signed in to the correct company VPN. :facepalm:

- 363
- 1
- 7
- 16
I was having this same issue, but the answer I found was different, thought someone might come across this issue, so here is my solution.
I had to whitelist 2 IPs for port 22
, 80
, 443
, and 9418
:
192.30.252.0/22
185.199.108.0/22
In case these IP's don't work, it might be because they got updated, you can find the most current ones on this page.

- 5,185
- 8
- 45
- 65
My computer was unable to connect port 22 while connecting to Github. I never had this issue with bitbucket. If you have both GitHub and bitbucket then
Host bitbucket.org
Hostname altssh.bitbucket.org
Port 443
Host github.com
Hostname ssh.github.com
Port 443
It basically connects SSH in 443 port instead of 22.

- 19,412
- 7
- 65
- 47
The answer above gave me the information needed to resolve this issue. In my case the url was incorrectly starting with ssh:///
To check the url in your git config is correct, open the git config file :-
git config --local -e
Check the url entry. It should NOT have ssh:/// at the start.
Incorrect entry:
url = ssh:///git@github.com:username/repo.git
Correct entry:
url = git@github.com:username/repo.git
If your url is correct, then the next step would be to try the answer above that suggests changing protocol to http.

- 11
- 4
Changing the repo url from ssh to https is not very meaningful to me. As I prefer ssh
over https
because of some sort of extra benefits which I don't want to discard. Above answers are pretty good and accurate. If you face this problem in GitLab, please go to their official documentation page and change your config file like that.
Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab

- 586
- 3
- 15
Restart the computer solved it for me.
Git version: 2.27.0.windows.1
OS version: Windows 10

- 8,804
- 9
- 59
- 90
The main reason was the change from the proxy installed by the company recently, which has blocked other ssh connections other than those to the company domain.
I was able to connect successfully by following these steps:
- Double checked that the issue is what I am assuming by
ssh -T git@github.com
It should end up in a timeout.
- Edited the local remote URL by
ssh config --local -e
and from
url=git@github.com:asheeshjanghu/Journal.git
to
url=https://github.com/asheeshjanghu/Journal.git
The important point is that in the url you have to change at 2 places.
from git@
to https://
and from github:username
to github/username
In the end verify by doing a git fetch

- 41
- 1
- 5
-
1I think `ssh config --local -e` should actually be `git config --local -e`, can you please check? – Fabio says Reinstate Monica Feb 23 '23 at 10:06
In my case the problem was caused by a setting that I had changed on my Router a day before. So on my Router, I just had to revert the setting Isolation to disable and it has fixed my issue.

- 6,097
- 14
- 52
- 99
For my case, I didn't change anything in my PC. My workaround was:
- Restart the PC.
- Connect PC network with mobile hotspot or use Cloudflare WARP for private network.
- Do your work and chill :D

- 21
- 7
If your ssh -T git@github.com
connects and does not time out but you're still getting the error when trying to git commit
:
ssh: connect to host sign port 22: Operation timed out?
fatal: failed to write commit object:
Ive been able to fix the issue by disabling gpgsign in .gitconfig
[commit]
gpgsign = false
Running MacOs, Not under proxy. Im guessing the complete solution is to generate and re assign new gpg keys but ive been at this for hours so perhaps tomorrow.

- 161
- 1
- 7
ISSUE
Step to produce issue: git clone git@github.com:sramachand71/test.git
for the first time in the new laptop
ERROR
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
SOLUTION
for the first time in the system to clone we need to give double quotes for the clone command.
$ git clone "git@github.com:sramachand71/test.git"
I face this issue in the system even after everything was correct but noticed at last that double quote is must for url "repository_url.git" for first time or new user in the system.

- 8,362
- 6
- 61
- 88

- 1
- 2
I had this issue on a server of mine that was set up with it's regular IP and a failover IP. The failover IP did not point to the server at this time. I had to remove the failover IP from the server configuration in /etc/netplan/01-netcfg.yaml
. Pointing the failover IP to that server would have probably solved the issue as well.

- 3,512
- 10
- 39
- 73
So I was having this same problem (not behind a proxy) and came across this question. Here's what I did to fix it:
Tried running ssh -T git@github.com
and it did time out, but adding -o KexAlgorithms=ecdh-sha2-nistp521
made a successful connection (found from this answer to a semi-related question).
To permanently fix this, I just added a line KexAlgorithms=ecdh-sha2-nistp521
under github.com
in my ~/.ssh/config
. Everything seems to work fine now.

- 570
- 1
- 5
- 10
-
That sets the Kex Algm to just the (comma-separated) arguments. If you want to _add_ some kex, you can prepend to the default list by starting your arguments with `^` like `^nist1,ed25519,etc`. `+` will append to and `-` will remove from the default list. – Michael Feb 23 '23 at 15:22
If you are in windows, move into the directory where you stored your ssh key, and try again, it worked for me.

- 47
- 6
What solved it for me was doing ssh-add
on the key file.
ssh-add C:/Path/To/Key.pem
C:/Users/User/.ssh/config:
Host sshapp
Hostname ssh.github.com
IdentityFile C:/Path/To/Key.pem
Port 443
Then clone using:
>git clone git@sshapp:<git_user>/app.git
Cloning into 'app'...
The authenticity of host '[ssh.github.com]:443 ([140.82.121.35]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6T.....vCOqU.

- 1,168
- 1
- 17
- 32
I had this issue when working over a public library's wifi.
Running PowerShell test-netconnection github.com -port 22
showed that they were blocking outbound connections on that port (lots of places seem to only allow HTTP ports; i.e. 80
and 443
).
Thankfully, GitHub allows you to access SSH over port 443 too: documentation
Instead of running git clone git@github.com:myOrg/myRepo.git
, make the following tweaks:
- Add
ssh://
to the start of the URL - Connect to the
ssh
subdomain (i.e.ssh.github.com
instead of justgithub.com
) - Add the port after the hostname: i.e.
:443
. - Amend the colon before your org/username to a slash.
So for the above example you'd run: git clone ssh://git@ssh.github.com:443/myOrg/myRepo.git
This may give you a warning about the authenticity of the host; but (assuming you're happy*), answering YES
to that will allow the command to run. To decide if you should answer YES, check the fingerprint given in this warning against GitHub's published fingerprints.

- 22,735
- 13
- 96
- 178
In my case,
- I backup the
known_hosts
toknown_hosts.bk
- I clear all content of the old
known_hosts
.
Maybe it did remember the old host when I ssh using the other .pem
file.
- Error
- Success

- 13,506
- 17
- 39
- 56
When I accidentally switched to a guest wifi network I got this error. Had to switch back to my default wifi network.

- 2,665
- 1
- 25
- 26
Refreshing my Internet connection worked for me.
Also if you use mobile hotspot - restart of mobile device was solution in my case.

- 5,849
- 39
- 40

- 105
- 1
- 6
Suggest to check the Internet connection or connect to another connection.

- 85
- 1
- 4
-
This does not provide an answer to the question. Once you have sufficient [reputation](https://stackoverflow.com/help/whats-reputation) you will be able to [comment on any post](https://stackoverflow.com/help/privileges/comment); instead, [provide answers that don't require clarification from the asker](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). - [From Review](/review/late-answers/31393769) – tjheslin1 Mar 30 '22 at 16:53
I had this issue for 2 hours and it turns out removing the "s" from https and just do:
git clone -b <branchName> http:<projecturl>
Fixed it.

- 123
- 1
- 12
-
-
2What? This possibly cannot be the answer... The whole reason to have that "s" is to make a secure and encrypted link with the repo lol. Removing the "s" takes away the whole point of the question. – Yashank Oct 28 '20 at 19:43
-