Estou usando 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 SSH para o github.
O que acontece com o SSH?
A chave id_ed25519 acaba de ser gerada novamente. O 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?
Pode ser! Mas posso ssh para instâncias do AWS EC2 no mesmo prompt de comando. Sem problemas.
O que mais eu tentei?
Eu posso usar SSH sobre HTTPS. Por exemplo, isso...
ssh -T -p 443 [email protected]
...funciona bem e posso conectar. Mas eu 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 que eles atribuíram.
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
Usar traceroute tcp
Seguindo o conselho de Tero Kilkanen, instalei o tcptraceroute, o que levou à resolução do problema. Edit: Eu queria acrescentar que não usei
traceroute
porque sabia que usava o protocolo ICMP e não seria necessariamente roteado da mesma maneira que meus pacotes TCP SSH. Entãotcptraceroute
foi novo 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:
2). Executando o tcptraceroute
Incluí um trecho de rastreamento que mostra que ele pára com o ISP:
3). Resolução com ISP
Antes de ligar para o ISP, verifiquei as configurações da conta. Desabilitar os controles dos pais padrão fez o truque - 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 do ISP após a atribuição do IP estático tenha causado uma reavaliação das regras de controle dos pais configuradas.
Não faço 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.