Невозможно подключиться по SSH к github.com после смены IP на статический

Невозможно подключиться по SSH к github.com после смены IP на статический

Я уже давно пользуюсь github.com, но недавно мой интернет-провайдер переключил мой домашний интернет на статический IP-адрес, и теперь я не могу подключиться к github по SSH.

Что происходит с SSH?

Ключ id_ed25519 только что был перегенерирован. SSH просто останавливается:

$ 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.

Wireshark показывает, что он вообще не получает никаких ответных пакетов:

снимок экрана моего Wireshark, показывающий повторные передачи TCP

Так, может быть, SSH не разрешён?

Может быть! Но я могу нормально подключаться по ssh к экземплярам AWS EC2 из той же командной строки. Никаких проблем.

Что еще я пробовал?

Я могу использовать SSH через HTTPS. Например, это...

ssh -T -p 443 [email protected]

...работает отлично, и я могу подключиться. Но мне нужно знать, ПОЧЕМУ старый добрый порт 22 больше не работает у меня.

Что изменилось?

Я попросил своего интернет-провайдера назначить мне статический IP. Они это сделали. Это сработало. Подключения от устройств в моей сети, похоже, идут с этого нового статического IP, который они назначили.

Содержимое конфигурации ssh

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

И как дополнительный бонус,

$ git config --list
credential.helper=osxkeychain
user.name=xxxx
[email protected]
core.autocrlf=input

решение1

Использовать трассировку TCP

Следуя совету Теро Килканена, я установил tcptraceroute, что привело к решению проблемы. Редактировать: Я хотел добавить, что я не использовал его, tracerouteпотому что знал, что он использует протокол ICMP и не обязательно будет маршрутизироваться так же, как мои пакеты TCP SSH. Так что это tcptracerouteбыло для меня в новинку, и я думаю, что это будет очень полезно!

1). Установить tcptraceroute

Это на Mac, поэтому я использовал homebrew для установки предлагаемой формулы: formulae.brew.sh/formula/tcptraceroute:

$ brew install tcptraceroute

2). Запуск tcptraceroute

$ sudo tcptraceroute github.com 22

Я включил фрагмент трассировки, который показывает, что он останавливается у интернет-провайдера:

 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) Разрешение проблемы с интернет-провайдером

Прежде чем звонить провайдеру, я проверил настройки аккаунта. Отключение родительского контроля по умолчанию помогло - ssh на github.com восстановлен!

Правила заблокировали только youtube.com, и это не сработало. Похоже, что перезагрузка соединения провайдером после назначения статического IP-адреса вызвала переоценку настроенных правил родительского контроля.

Понятия не имею, почему https к github.com разрешен, а ssh — нет (или даже почему github.com заблокирован), но вот и все — проблема решена.

Связанный контент