Ich starte mehrere Remote-Instanzen über Google Cloud und scp
sende -ing-Skripte an diese Instanzen, um sie auszuführen und die Ergebnisse scp
-ing an meinen lokalen Computer zurückzusenden. Alles beginnt reibungslos, aber nach einer Weile (ungefähr 30 Instanzen später) können neue Instanzen keine scp
Dateien mehr an meinen Computer senden, da ich den Fehler erhalte: ssh_exchange_identification: Connection closed by remote host
. Dieser Fehler verschwindet erst, nachdem ich das SSH meines lokalen Computers mit den folgenden Befehlen zurückgesetzt habe:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Was ist das zugrunde liegende Problem und wie kann ich es lösen, ohne mein SSH ständig zurücksetzen zu müssen?
Antwort1
Möglicherweise laufen Sie in den sshdMaxStartupsGrenze:
MaxStartups
Gibt die maximale Anzahl gleichzeitiger nicht authentifizierter Verbindungen zum SSH-Daemon an. Weitere Verbindungen werden abgebrochen, bis die Authentifizierung erfolgreich ist oder die LoginGraceTime für eine Verbindung abläuft. Der Standardwert ist 10:30:100.
Alternativ kann ein zufälliger früher Abbruch aktiviert werden, indem die drei durch Doppelpunkte getrennten Werte start:rate:full angegeben werden (z. B. „10:30:60“). sshd(8) lehnt Verbindungsversuche mit einer Wahrscheinlichkeit von rate/100 (30 %) ab, wenn derzeit start (10) nicht authentifizierte Verbindungen vorhanden sind. Die Wahrscheinlichkeit steigt linear an und alle Verbindungsversuche werden abgelehnt, wenn die Anzahl der nicht authentifizierten Verbindungen full (60) erreicht.
Sie könnten versuchen, die Einstellung zu ändern. Unter MacOS ist die Konfigurationsdatei /private/etc/ssh/sshd_config
.
Alternativ können Sie die SSH-Verbindungen zum Server staffeln, sodass sie nicht alle gleichzeitig eingehen.