Я запускаю несколько удаленных экземпляров через Google Cloud и scp
-ing скрипты к этим экземплярам, чтобы запустить их и получить результаты scp
-ed обратно на мой локальный компьютер. Все начинается гладко, но через некоторое время (примерно 30 экземпляров спустя) новые экземпляры не могут отправлять scp
файлы обратно на мой компьютер, так как я получаю ошибку: ssh_exchange_identification: Connection closed by remote host
. Эта ошибка исчезает только после того, как я сбрасываю ssh моего локального компьютера с помощью следующих команд:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
В чем заключается основная проблема и как ее решить, не прибегая к постоянному сбросу настроек SSH?
решение1
Вы можете столкнуться с sshdМаксСтартапыпредел:
МаксСтартапы
Указывает максимальное количество одновременных неаутентифицированных подключений к демону SSH. Дополнительные подключения будут сброшены до тех пор, пока аутентификация не будет успешной или не истечет время LoginGraceTime для подключения. Значение по умолчанию — 10:30:100.
В качестве альтернативы можно включить раннее случайное сбрасывание, указав три разделенных двоеточием значения start:rate:full (например, "10:30:60"). sshd(8) будет отклонять попытки подключения с вероятностью rate/100 (30%), если в данный момент есть start (10) неаутентифицированных подключений. Вероятность увеличивается линейно, и все попытки подключения отклоняются, если количество неаутентифицированных подключений достигает full (60).
Вы можете попробовать изменить настройки. В MacOS файл конфигурации — /private/etc/ssh/sshd_config
.
В качестве альтернативы вы можете организовать постепенный доступ к серверу по SSH, чтобы все подключения не осуществлялись одновременно.