Рейтинг:1

Быстрые последовательные попытки подключения SSH зависают

флаг jp

У меня есть скрипт bash, который последовательно копирует небольшие файлы, используя SCP. Так что есть куча SCP команды в этом скрипте. Ключ SSH используется для аутентификации на другом сервере.

Поскольку файлы настолько малы, попытки подключения по SSH происходят очень быстро и совсем не заходят далеко в сценарий. SCP будет висеть бесконечно.

  • Ошибок не выдает.
  • Сетевое оборудование было исключено из уравнения, а серверы общаются в режиме реального времени в одной и той же подсети.
  • Проблема была продемонстрирована с rsync также.

Если спать Между этими вызовами scp помещается 1 секунда, скрипт работает плавно, без зависаний.

Где я должен искать это очевидное ограничение скорости? Я не вижу этого между любыми другими моими серверами...

Michael Hampton avatar
флаг cz
Рассматривали ли вы возможность использования постоянных соединений ssh? Это не только решит эту проблему, но и значительно ускорит общий перенос.
Marcus avatar
флаг jp
@MichaelHampton Я думал об этом на самом деле, но, поскольку я устраняю неполадки в процессах, которыми я не владею, мне поручено решить проблему без изменения сценария. Тем не менее, определенно достойная идея обходного пути.
Marcus avatar
флаг jp
@anx Это интересно, спасибо за ссылку, я этого не знал. Однако эта проблема с SSH была продемонстрирована и с rsync, поэтому я считаю, что проблема не в scp.
Рейтинг:3
флаг in

Иногда люди настраивают ограничение скорости через iptables.

OpenSSH имеет MaxStartups опция, которая ограничивает скорость для входящих клиентов. По умолчанию (по крайней мере, на моем компьютере) 10:30:100.

человек sshd_config

В качестве альтернативы можно включить случайное раннее удаление, указав три значения, разделенные двоеточием start:rate:full (например, «10:30:60»). sshd(8) будет отклонять попытки подключения с вероятностью rate/100 (30%), если в настоящее время имеется запуск (10) неавторизованных подключений. Вероятность увеличивается линейно, и все попытки подключения будут отклонены, если количество неаутентифицированных подключений достигает полного (60).

Еще одна распространенная проблема и причина задержек подключения OpenSSH связана с функцией на сервере OpenSSH, которая пытается выполнить обратный поиск входящего IP-адреса при попытке подключения. Я считаю, что эта функциональность DNS нужна для совместимости с некоторыми из старых методов аутентификации, совместимых с rhost, функциональность, которую, я думаю, почти никто больше не использует. В любом случае функция разрешения DNS вызовет проблемы, если распознаватели DNS плохо настроены, настроены на использование неисправного распознавателя или, возможно, что-то в обратной зоне, из которой подключается IP-адрес клиента, нарушено.

В идеале ответ заключается в том, чтобы исправить DNS и убедиться, что ваш DNS всегда работает без ошибок и быстро отвечает. Но если вам не требуется разрешение DNS, то быстрое решение здесь — запретить серверу пытаться разрешать имена. Установлен ИспользуемыйDNS-номер в вашей sshd_config.

Marcus avatar
флаг jp
Спасибо за этот ответ. К сожалению, я считаю, что устранил их, поскольку MaxStartups настроен так же, как и на моих хостах, которые не проявляют зависания. И iptables не содержит правил ограничения скорости.
флаг in
Действительно ли он висит «на неопределенный срок» или просто долго? Еще одна возможность, которую я могу придумать, заключается в том, что вы сломали DNS на этом сервере, и время ожидания попытки разрешения DNS истекло. Возможно, вы захотите установить UseDNS no в файле sshd_config.
Marcus avatar
флаг jp
Я думаю, вы справились с UseDNS no. Если вы хотите обновить свой ответ этим дополнительным лакомым кусочком, который решил мою проблему, я приму его.
anx avatar
флаг fr
anx
@Marcus Маркус, в чем причина сбоя DNS при последовательных попытках входа в систему? Является ли это ошибкой или сломанным локальным резольвером-заглушкой, или что-то, что действительно нельзя исправить локально?
Marcus avatar
флаг jp
@anx Основная причина все еще расследуется. Знание того, что это DNS, хотя это в высшей степени полезно. У меня были другие подсказки, что это был DNS, но до сих пор я не знал об UseDNS SSH.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.