ssh: conecte-se à porta 22 do host github.com: a conexão expirou


174

Estou sob um proxy e estou pressionando o git com sucesso por um bom tempo.
Agora não consigo entrar no git de repente.
Eu configurei a chave RSA e o proxy e os verifiquei duas vezes, sem sucesso, e o git está me lançando o erro mostrado no título da página.


6
Crie um ponto de acesso no seu dispositivo móvel, conecte-se através do seu dispositivo móvel e, em seguida git push. Trabalhou para mim.
zundi 12/09/17


1
O mesmo problema aconteceu comigo no Reino Unido com a Virgin Media. Tentei empurrar / puxar para o GitHub via ssh em casa e sem sorte, mas no trabalho estava tudo bem. Então percebi que tinha problemas com meu ISP. A solução mais simples para mim foi usar o Cloudflare DNS em 1.1.1.1vez de um padrão, e é por isso que o @zundi obtém sucesso através de um ponto de acesso móvel.
Vladyslav Krylasov 18/03

Respostas:


254

O motivo pode ser a modificação do firewall, pois você está em uma rede (nesse caso, eles podem bloquear deliberadamente algumas portas)
Para verificar novamente se esse é o motivo ...

ssh -T git@github.com

isso deve expirar. Se for esse o caso, use o protocolo http em vez do ssh dessa maneira,
apenas altere sua url no arquivo de configuração para http.
Aqui está como :-

git config --local -e

alterar entrada de

 url = git@github.com:username/repo.git

para

url = https://github.com/username/repo.git

6
Eu tive esse problema uma vez, mas reiniciar o computador resolveu o problema.
Kevin Lee

3
fatal: incapaz de acessar ' gitlab.com : ******. git /': o número da porta terminou com 'f'
Fakher

Eu tive que remover o .git do URL para que isso funcionasse para mim. url = github.com/username/repo
Jesse Buss

4
usar https em vez de ssh não é a solução certa. Deve haver uma maneira de definir proxy no git config e nas configurações ssh para resolver isso.
shijin 01/12/19

6
A Virgin Media UK tem um modo de segurança para crianças, que eu tive que desativar.
Finlay Percy

178

Para o meu caso, nenhuma das soluções sugeridas funcionou, então tentei corrigi-lo e resolvi-o.

Para mim, estou recebendo esse erro na minha instância do AWS EC2 UBUNTU, o que fiz para resolvê-lo foi editar a configuração do ssh (ou adicioná-lo, se ele não existir).

sudo nano ~/.ssh/config

E eu adicionei o seguinte

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

Em seguida, execute o comando ssh -T git@github.com para confirmar se o problema foi corrigido.

De acordo com isso

Às vezes, os firewalls se recusam a permitir conexões SSH inteiramente. Se o uso da clonagem HTTPS com armazenamento em cache de credenciais não for uma opção, você pode tentar clonar usando uma conexão SSH feita pela porta HTTPS. A maioria das regras de firewall deve permitir isso, mas os servidores proxy podem interferir

Espero que isso ajude qualquer pessoa que esteja com o mesmo problema que eu.


3
Esta solução funcionou bem para mim, embora não tenha resolvido o problema do GitLab. Nesse caso, considere que o GitLab.com executa um segundo servidor SSH que escuta na porta 443 comumente usada, que dificilmente terá firewall. Tudo o que você precisa fazer é editar ~/.ssh/confige alterar a maneira como você se conecta ao GitLab.com. Nesse caso, consulte este artigo: about.gitlab.com/2016/02/18/…
lucascavalcante

1
Olá, tive um mesmo problema, meu roteador é da NET e ele bloqueia a porta 22. Essa configuração resolveu o meu problema definitivamente
Pedro Soares

Não é gitconfig-mas sshde configuração
Guyt

1
Depois de horas procurando respostas ... você é o CHAMP, afinal, por que precisamos mudar o github.com para ssh.github.com? Ainda não entendi
Robert Tirta

45

Reescrita básica de URL

O Git fornece uma maneira de reescrever URLs usando a configuração do git. Basta emitir o seguinte comando:

git config --global url."https://".insteadOf git://

Agora, como que por mágica, todos os comandos git farão uma substituição de git://parahttps://

source: git: // protocolo bloqueado pela empresa, como posso contornar isso?


1
Obrigado! A nossa foi durante a construção do Jenkins, então não pude editar manualmente o arquivo git (não tenho credenciais git para a conta jenkins) - portanto, isso foi muito útil.
Phil

1
Isso é ótimo. Eu adicionei aliases git para cada um para alternar facilmente
lfender6445

17
No que diz respeito github, o comando deve ser: git config --global url."https://github.com/".insteadOf git@github.com:. Observe as diferenças: @se torna //e :se torna /.
Frodon

20

dentro da pasta .ssh Crie o arquivo "config"

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
Veja a resposta Mahan_F para uma explicação detalhada sobre por que isso acontece.
refaelio 18/03/19

1
Essa é a única coisa que funcionou para mim no GitLab. Obrigado, Isaque!
awwsmm

5

Solução rápida: tente mudar para uma rede diferente

Tive esse problema enquanto estava em um hotspot (conexão 3 / 4G). Mudar para uma conexão diferente (WiFi) resolveu, mas é apenas uma solução alternativa - não tive a chance de chegar ao fundo do problema, portanto as outras respostas podem ser mais interessantes para determinar o problema subjacente


Eu mudei do WiFi para o 4G e funcionou. Eu também não entendo.
Adam Casey

4

Eu enfrentei o mesmo problema e não consegui encontrar uma solução funcional. Eu enfrentei esse problema ao configurar um servidor local e o git não pôde se conectar através da minha rede proxy, mas minha estação de trabalho. Esta foi a saída quando executei o comando 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.

Então, tentei usar uma conexão SSH feita pela porta HTTPS editando o arquivo de configuração, ~/.ssh/configmas sem sucesso.

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

Finalmente, encontrei este artigo que resolveu e expôs o problema real.

# 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

Este é o meu arquivo de configuração e agora o git funciona perfeitamente bem através do ssh!


3

Executar:

nc -v -z <git-repository> <port>

Sua saída deve se parecer com:

"Connection to <git-repository> <port> port [tcp/*] succeeded!"

Se você pegar:

connect to <git-repository> <port> (tcp) failed: Connection timed out

Você precisa editar o seu arquivo ~ / .ssh / config. Adicione algo como o seguinte:

Host example.com
Port 1234

5
Não sei se todo mundo vai ter ncinstalado. O que é que isso deveria ser? Netcat ou algo assim?
Hack-R

2

Eu estava tendo o mesmo problema, mas a resposta que encontrei foi diferente, pensei que alguém poderia se deparar com esse problema, então aqui está a minha solução.

Eu tive que whitelist 2 IPs para a porta 22, 80, 443, e 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

Caso esses IPs não funcionem, pode ser porque foram atualizados, você pode encontrar os mais atuais nesta página .


0

A resposta acima me deu as informações necessárias para resolver esse problema. No meu caso, o URL estava incorretamente começando com ssh: ///

Para verificar se o URL na sua configuração do git está correto, abra o arquivo de configuração do git: -

git config --local -e

Verifique a entrada do URL. NÃO deve ter ssh: /// no início.

Entrada incorreta:

 url = ssh:///git@github.com:username/repo.git

Entrada correta:

 url = git@github.com:username/repo.git

Se o seu URL estiver correto, o próximo passo seria tentar a resposta acima, que sugere a alteração do protocolo para http.


0

Quando mudei acidentalmente para uma rede wifi de convidado, recebi esse erro. Tive que voltar à minha rede wifi padrão .


0

Eu tive esse problema por 2 horas e verifica-se removendo os "s" de https e basta:

git clone -b <branchName> http:<projecturl>

Corrigido.


Por favor, feche esta questão marcando-a como respondida
Clément

0

PROBLEMA: Etapa para produzir o problema: git clone git@github.com: sramachand71 / test.git pela primeira vez no novo laptop ERRO ssh: conecte-se ao host porta github.com 22: conexão expirada fatal: Não foi possível ler a partir do controle remoto repositório.

Verifique se você possui os direitos de acesso corretos e se o repositório existe. SOLUÇÃO pela primeira vez no sistema para clonar, precisamos fornecer aspas duplas para o comando clone. $ git clone "git@github.com: sramachand71 / test.git" eu enfrento esse problema no sistema mesmo depois que tudo estava correto, mas finalmente notei que as aspas duplas são obrigatórias para o URL "repository_url.git" pela primeira vez ou novo usuário no sistema.


0

Alterar o URL do repositório de ssh para https não é muito significativo para mim. Como prefiro, sshpor httpscausa de algum tipo de benefício extra que não quero descartar. As respostas acima são muito boas e precisas. Se você enfrentar esse problema no GitLab, acesse a página oficial da documentação e altere seu arquivo de configuração assim.

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

0

Reiniciar o computador resolveu isso para mim.
Versão Git: 2.27.0.windows.1
Versão do sistema operacional: Windows 10 v1909

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.