Estoy activando varias instancias remotas a través de Google Cloud y scp
enviando scripts a estas instancias para ejecutarlas y obtener los resultados scp
en mi computadora local. Todo comienza sin problemas, pero después de un tiempo (aproximadamente 30 instancias después), las instancias nuevas no pueden scp
devolver los archivos a mi computadora porque aparece el error: ssh_exchange_identification: Connection closed by remote host
. Este error solo desaparece después de restablecer el ssh de mi computadora local con los siguientes comandos:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
¿Cuál es el problema subyacente y cómo puedo solucionarlo para resolver este problema sin tener que restablecer mi ssh constantemente?
Respuesta1
Es posible que te estés topando con el sshdMaxStartupslímite:
MaxStartups
Especifica el número máximo de conexiones simultáneas no autenticadas al demonio SSH. Las conexiones adicionales se cancelarán hasta que la autenticación se realice correctamente o caduque LoginGraceTime para una conexión. El valor predeterminado es 10:30:100.
Alternativamente, se puede habilitar la eliminación anticipada aleatoria especificando los tres valores separados por dos puntos start:rate:full (por ejemplo, "10:30:60"). sshd(8) rechazará los intentos de conexión con una probabilidad de tasa/100 (30%) si actualmente hay (10) conexiones no autenticadas. La probabilidad aumenta linealmente y todos los intentos de conexión se rechazan si el número de conexiones no autenticadas llega al máximo (60).
Podrías intentar alterar la configuración. En MacOS, el archivo de configuración es /private/etc/ssh/sshd_config
.
Como alternativa, puedes escalonar las conexiones ssh en el servidor, de modo que no entren todas al mismo tiempo.