Meu Git não funciona no 4G da Vivo – como resolvi
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/configHost github-custom
HostName ssh.github.com
Port 443
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesTroque ~/.ssh/id_ed25519 pelo caminho da chave que está no GitHub.
Usar no repositório
Para clonar:
git clone git@github-custom:usuario/repositorio.gitEm um repositório que já existe:
git remote set-url origin git@github-custom:usuario/repositorio.gitTestar
ssh -T git@github-customCom 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 yesNos comandos, use o nome do host que você criou (github-custom, github-trabalho) no lugar de github.com.