Meu Git não funciona no 4G da Vivo – como resolvi

Renan Morais
Renan Morais

Na rede 4G da Vivo, o Git via SSH parava no meio do caminho. git pull e git clone fechavam a conexão na porta 22, a padrão do SSH. O mesmo acontece em rede corporativa, hotel e em outros provedores que bloqueiam essa porta.

A mensagem costuma ser esta:

Connection closed by github.com port 22
fatal: Could not read from remote repository.

O GitHub aceita SSH pela porta 443, a mesma do HTTPS, que essas redes em geral deixam passar. A troca fica no ~/.ssh/config. A chave cadastrada continua a mesma.

Configurar o host

nano ~/.ssh/config
Host github-custom
  HostName ssh.github.com
  Port 443
  User git
  IdentityFile ~/.ssh/id_ed25519
  IdentitiesOnly yes

Troque ~/.ssh/id_ed25519 pelo caminho da chave que está no GitHub.

Usar no repositório

Para clonar:

git clone git@github-custom:usuario/repositorio.git

Em um repositório que já existe:

git remote set-url origin git@github-custom:usuario/repositorio.git

Testar

ssh -T git@github-custom

Com a chave certa, a resposta é parecida com esta:

Hi usuario! You've successfully authenticated, but GitHub does not provide shell access.

Mais de uma conta

Dá para separar trabalho e pessoal no mesmo arquivo. A conta que esbarra na porta 22 usa ssh.github.com. A outra pode seguir na porta padrão.

Host github-trabalho
  HostName ssh.github.com
  Port 443
  User git
  IdentityFile ~/.ssh/id_ed25519_trabalho
  IdentitiesOnly yes

Host github-pessoal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_pessoal
  IdentitiesOnly yes

Nos comandos, use o nome do host que você criou (github-custom, github-trabalho) no lugar de github.com.

Voltar