Я давно пользуюсь github.com, но только что мой интернет-провайдер переключил мой домашний интернет на статический IP-адрес, и теперь я не могу использовать SSH. на гитхаб.
Что происходит с SSH?
Ключ id _ed25519 был только что заново -сгенерирован. SSH просто останавливается:
$ ssh -T -F ~/.ssh/config git@github.com -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 запрещен?
Возможно! Но я могу подключиться к экземплярам AWS EC2 по ssh из той же командной строки. Никаких проблем.
Что еще я пробовал?
Я могу использовать SSH через HTTPS. Например, это...
ssh -T -p 443 git@ssh.github.com
...работает нормально, и я могу подключиться. Но мне нужно знать, ПОЧЕМУ старый простой порт 22 больше не работает для меня.
Что изменилось?
Я попросил своего интернет-провайдера назначить мне статический IP-адрес. Они сделали это. Это сработало. Соединения с устройств в моей сети, похоже, исходят от этого нового статического IP-адреса, который они назначили.
Содержимое конфигурации ssh
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
И в качестве дополнительного бонуса,
$ git config --list
credential.helper=osxkeychain
user.name=xxxx
user.email=xxx.xxx@xxx.com
core.autocrlf=input
Используйте tcp traceroute
Следуя совету Теро Килканена, я установил tcptraceroute, что помогло решить проблему. Редактировать:Я хотел добавить, что не использовал traceroute
, потому что знал, что он использует протокол ICMP и не обязательно будет маршрутизироваться так же, как мои пакеты TCP SSH. Так что tcptraceroute
был для меня новым, и я думаю, что он будет очень полезен!
1). Установите tcptraceroute
Это на Mac, поэтому я использовал homebrew для установки предложенной формулы :Formulae.brew.sh/formula/tcptraceroute:
$ brew install tcptraceroute
2 ). Запуск tcptracoute
$ sudo tcptraceroute github.com 22
Я включил фрагмент трассировки, показывающий, что он останавливается на 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). Решение проблемы с провайдером
Прежде чем звонить провайдеру, я проверил настройки учетной записи. Отключение родительского контроля по умолчанию помогло -ssh к github.com восстановлен!
Правила заблокировали только youtube.com, и это не сработало. Вполне вероятно, что перезагрузка соединения провайдером после назначения статического IP-адреса вызвала повторную-оценку настроенных правил родительского контроля.
Понятия не имею, почему https к github.com разрешен, а не ssh (или даже почему github.com был заблокирован), но вот, -проблема решена.