Я использую сервер CentOS на Google Compute около года. Я использую SSH каждый день без проблем. Внезапно, когда я пытаюсь ввести ssh, команда просто ждет, ждет и ждет ... После экспериментов оказалось, что я могу легко использовать ssh, используя все виды других способов обращения к серверу, но только мой основной домен вызывает проблема.
Вот копия моей командной строки с измененными доменами и IP-адресами для защиты невиновных. ;)
Kenny-iMac:~$ ssh kenny@mymaindomain.com
^C
Kenny-iMac:~$ host mymaindomain.com
mymaindomain.com has address xxx.xxx.xxx.xxx
mymaindomain.com mail is handled by 10 mxa.smtphost.com.
mymaindomain.com mail is handled by 10 mxb.smtphost.com.
Kenny-iMac:~$ ssh kenny@xxx.xxx.xxx.xxx
Last login: Sat Jun 2 18:43:05 2018 from nnn.nnn.nnn.nnn
[kenny@production-frontend-0 ~]$ exit
logout
Connection to xxx.xxx.xxx.xxx closed.
Kenny-iMac:~$ host otherdomainonserver.com
otherdomainonserver.com has address xxx.xxx.xxx.xxx
otherdomainonserver.com mail is handled by 10 mxa.smtphost.com.
otherdomainonserver.com mail is handled by 10 mxb.smtphost.com.
Kenny-iMac:~$ ssh kenny@otherdomainonserver.com
Last login: Sat Jun 2 18:45:20 2018 from nnn.nnn.nnn.nnn
[kenny@production-frontend-0 ~]$ exit
logout
Connection to otherdomainonserver.com closed.
Kenny-iMac:~$
Я могу изменить приведенное выше, чтобы включить реальные домены, если это поможет диагностировать проблему, но решил, что лучше исключить их, если это не нужно.
Если я могу получить правильный DNS-поиск для mymaindomain.com и мои ключи ssh настроены правильно, чтобы я мог войти в систему (и проработал год), что может внезапно вызвать это? Почему я зависаю по SSH на мой основной домен?
РЕДАКТИРОВАТЬ: было предложено сделать ssh -v
чтобы увидеть, что происходит. Вот результат:
$ ssh -v kenny@mymaindomain.com
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Connecting to mymaindomain.com port 22.
а потом зависает.
РЕДАКТИРОВАТЬ 2: я изменил sshd_config назначения, чтобы установить уровень ведения журнала на DEBUG3
который является самым высоким. Когда я пытаюсь ssh kenny@mymaindomain.com
я получил абсолютно ничего в журнале. Когда я ssh kenny@xxx.xxx.xxx.xxx
то я успешно могу войти в систему, и журнал извергает ТОННУ материала.
Я сбит с толку.
Друг предложил запустить журнал sshd на удаленном сервере CentOS, и я включил его. DEBUG3
и сервер не зарегистрировал абсолютно НИЧЕГО, когда я пытался подключиться с моего Mac. Это заставило меня понять, что моя попытка ssh с моего Mac никогда не касалась удаленного сервера.
Я пробовал пинговать, но пинги не прошли. Но я смог подключиться с помощью Chrome и загрузить один из веб-сайтов, размещенных на сервере, так что это говорит мне, что я могу искать и подключаться через доменное имя. Однако теперь я думаю, что я был введен в заблуждение этой точкой данных, что Chrome, возможно, кэшировал поиск IP-адреса с некоторого момента в прошлом и мог его использовать.
Я использовал homebrew для установки telnet и попытался подключиться к порту 22 mymaindomain.com, и он завис ... но затем истекло время, и я получил фактическое сообщение об ошибке!
nodename nor servname provided, or not known
Это сообщение об ошибке привело меня к нескольким страницам, предполагающим, что внутренний DNS-преобразователь MacOS X может быть проблемой, и они предложили killall -HUP mDNSResponder
. Это не решило проблему.
Другие предложили launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
с последующим launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Однако тот отказался бежать и сказал: Operation not permitted while System Integrity Protection is engaged
.
Итак, я решил, что самый простой способ перезагрузить внутренний DNS-кеш Mac OS X - это перезагрузить компьютер. вздох и это сработало. Я стал жертвой классической ошибки, когда не попытался просто выключить и снова включить.