Schnelle, aufeinanderfolgende SSH-Verbindungsversuche hängen

Schnelle, aufeinanderfolgende SSH-Verbindungsversuche hängen

Ich habe ein Bash-Skript, das kleine Dateien nacheinander kopiert scp. scpDieses Skript enthält also eine Reihe von Befehlen. Zur Authentifizierung gegenüber dem anderen Server wird ein SSH-Schlüssel verwendet.

Weil die Dateien so klein sind, erfolgen die SSH-Verbindungsversuche sehr schnell und schon nach kurzer Zeit im Skript, sodass scpsie auf unbestimmte Zeit hängen bleiben.

  • Es sind keine Fehler aufgetreten.
  • Netzwerkgeräte wurden aus der Gleichung eliminiert und die Server kommunizieren live im selben Subnetz.
  • Das Problem wurde rsyncauch mit demonstriert.

Wenn sleepzwischen diesen SCP-Aufrufen ein Abstand von 1 Sekunde eingehalten wird, läuft das Skript reibungslos und es kommt zu keinem Hängenbleiben.

Wo soll ich nach dieser offensichtlichen Ratenbegrenzung suchen? Ich sehe dies bei keinem meiner anderen Server ...

Antwort1

Manchmal richten die LeuteRatenbegrenzung mit iptables.

OpenSSH bietet die MaxStartupsOption, die Rate für eingehende Clients zu begrenzen. Die Standardeinstellung (zumindest auf meinem Computer) ist 10:30:100.

man sshd_config

Alternativ kann ein zufälliger früher Verbindungsabbruch durch die Angabe der drei durch Doppelpunkte getrennten Werte start:rate:full (z. B. „10:30:60“) aktiviert werden. sshd(8) lehnt Verbindungsversuche mit einer Wahrscheinlichkeit von rate/100 (30 %) ab, wenn derzeit start (10) nicht authentifizierte Verbindungen bestehen. Die Wahrscheinlichkeit steigt linear an und alle Verbindungsversuche werden abgelehnt, wenn die Anzahl der nicht authentifizierten Verbindungen full (60) erreicht.

Ein weiteres, relativ häufiges Problem und eine Ursache für Verzögerungen bei OpenSSH-Verbindungen hängt mit einer Funktion des OpenSSH-Servers zusammen, die bei einem Verbindungsversuch versucht, eine umgekehrte Suche der eingehenden IP-Adresse durchzuführen. Ich glaube, diese DNS-Funktion ist aus Kompatibilitätsgründen mit einigen der älteren, rhost-kompatiblen Authentifizierungsmethoden erforderlich, eine Funktion, die meines Erachtens fast niemand mehr verwendet. Die DNS-Auflösungsfunktion verursacht jedoch Probleme, wenn die DNS-Resolver schlecht konfiguriert sind, für die Verwendung eines defekten Resolvers konfiguriert sind oder wenn möglicherweise etwas an der Reverse Zone, von der aus die Client-IP eine Verbindung herstellt, defekt ist.

Im Idealfall besteht die Lösung darin, DNS zu reparieren und sicherzustellen, dass Ihr DNS immer fehlerfrei funktioniert und schnell antwortet. Wenn Sie die DNS-Auflösung jedoch nicht benötigen, besteht eine schnelle Lösung darin, den Server daran zu hindern, Namen aufzulösen. Legen Sie UseDNS noin Ihrem fest sshd_config.

verwandte Informationen