Eu uso o github.com há muito tempo, mas meu ISP acabou de mudar minha Internet doméstica para um IP estático e agora não consigo fazer SSH para o github.
O que acontece com o SSH?
A chave id_ed25519 acaba de ser gerada novamente. SSH simplesmente para:
$ ssh -T -F ~/.ssh/config [email protected] -vvv
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/xxxx/.ssh/config
debug1: /Users/xxx/.ssh/config line 1: Applying options for *
debug1: Connecting to github.com port 22.
O Wireshark mostra que não está recebendo nenhum pacote de retorno:
uma captura de tela do meu wireshark mostrando retransmissões TCP
Então talvez o SSH não seja permitido?
Talvez! Mas posso fazer ssh para instâncias do AWS EC2 no mesmo prompt de comando. Sem problemas.
O que mais eu tentei?
Posso usar SSH sobre HTTPS. Por exemplo, isso...
ssh -T -p 443 [email protected]
...funciona bem e consigo me conectar. Mas preciso saber POR QUE a porta 22 não está mais funcionando para mim.
O que mudou?
Pedi ao meu ISP para me atribuir um IP estático. Eles fizeram isso. Funcionou. As conexões de dispositivos na minha rede parecem vir desse novo IP estático atribuído.
Conteúdo da configuração ssh
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
E como bônus adicional,
$ git config --list
credential.helper=osxkeychain
user.name=xxxx
[email protected]
core.autocrlf=input
Responder1
Usar traceroute tcp
Seguindo o conselho de Tero Kilkanen, instalei o tcptraceroute, o que levou à resolução do problema. Editar: gostaria de acrescentar que não usei traceroute
porque sabia que ele usava o protocolo ICMP e não seria necessariamente roteado da mesma maneira que meus pacotes TCP SSH. Então tcptraceroute
foi novidade para mim e acho que vai ser muito útil!
1). Instale o tcptraceroute
Isso está no Mac, então usei o homebrew para instalar a fórmula sugerida: formulae.brew.sh/formula/tcptraceroute:
$ brew install tcptraceroute
2). Executando tcptraceroute
$ sudo tcptraceroute github.com 22
Incluí um trecho de rastreamento que mostra que ele para com o ISP:
6 bundle-ether10.win-core10.melbourne.telstra.net (203.50.11.123) 26.865 ms 26.183 ms 27.529 ms
7 bundle-ether2.fli-core10.adelaide.telstra.net (203.50.6.228) 34.738 ms 32.591 ms 37.021 ms
8 bundle-ether1.fli-edge901.adelaide.telstra.net (203.50.11.155) 33.344 ms 33.840 ms 32.964 ms
9 * * *
10 * * *
11 * * *
3). Resolução com ISP
Antes de ligar para o ISP, verifiquei as configurações da conta. Desativar o controle dos pais padrão resolveu o problema - o ssh para github.com foi restaurado!
As regras bloqueavam apenas o youtube.com e isso não estava funcionando. Parece provável que a reinicialização da conexão pelo ISP após a atribuição do IP estático tenha causado uma reavaliação das regras de controle parental configuradas.
Não tenho ideia de por que https para github.com seria permitido e não ssh (ou mesmo por que github.com foi bloqueado), mas lá vamos nós - problema resolvido.