Прежде всего, извините за мой английский.
Мы столкнулись с очень странной проблемой с SSH-соединением между двумя конкретными серверами.
Допустим, у нас есть серверы X1, X2 и Y. Если X1 и X2 находятся за одним и тем же брандмауэром, установили одну и ту же операционную систему, используйте одинаковые конфигурации для всего, что, возможно, связано с ситуацией.
У нас нет никаких правил, разрешающих или блокирующих только определенные IP-адреса или что-то еще в IPtables на сервере Y, но в любом случае ... Серверы X1 и X2 взаимодействуют с внешним миром, используя один и тот же IP-адрес.
ПРОБЛЕМА: Сервер X1 не может подключиться к серверу Y через SSH. Он получает ответ на пинг, но ничего больше, ни одна другая служба на любом другом порту не может подключиться.
X2 или любой другой сервер успешно подключается к X1, а X1 успешно подключается к любому другому серверу, кроме Y1.
[root@X1]# ssh -v root@Y1
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to Y1 [Y1] port 22.
** It stalls here **
Мы перезапустили и серверы, и брандмауэры.
Мы провели тест, пытаясь подключить X1 к Y, используя другой порт, без настройки этого порта, и вместо того, чтобы зависать, мы получаем отказ в соединении. Если мы настроим демон SSH Y1 для приема соединений на этом порту и снова проведем тот же тест ... он остановится, используя этот недавно настроенный порт.
Я видел подобную проблему раньше, и ее было сложно диагностировать. Оказалось, что X1 прослушивает IP-адрес для Y (но не представляет сети, я не могу вспомнить подробности). Можно отключить пинг по Y? Сделайте это и посмотрите, может ли X1 все равно пинговать этот IP-адрес. Если это возможно, вы нашли проблему, теперь вам просто нужно найти причину.