Ich habe den folgenden Eintrag in meiner .ssh/config
Datei
Host AAA
User BBB
HostName CCC
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
Mit dem obigen Befehl kann ich mehrere SSH-Sitzungen über dieselbe SSH-Verbindung multiplexen, ohne jedes Mal das Kennwort eingeben zu müssen, wenn ich eine neue Sitzung benötige (solange die Masterverbindung offen bleibt).
Ich habe jedoch festgestellt, dass ich nach einer relativ hohen Anzahl gemultiplexter Verbindungen (~ 7) nicht mehr Sitzungen zu derselben gemultiplexten Verbindung hinzufügen kann und folgende Fehlermeldung erhalte:
> ssh -X AAA
mux_client_request_session: session request failed: Session open refused by peer
Password:
Meine Fragen:
Warum erhalte ich diesen Fehler? Gibt es ein Limit für die Anzahl der SSH-Sitzungen, die ich in derselben Verbindung multiplexen kann? Kann ich dieses Limit ändern? Wäre das eine schlechte Idee?
Antworten:
Der
sshd
Daemon auf dem Server begrenzt die Anzahl der Sitzungen pro Netzwerkverbindung. Dies wird durch dieMaxSessions
Option in gesteuert/etc/ssh/sshd_config
. Außerdem muss dieMaxStartups
Option möglicherweise erweitert werden, wenn Sie eine große Anzahl von Sitzungen verwenden. (man sshd_config
Weitere Informationen finden Sie unter.) Die Option zum Ändern desMaxSessions
Grenzwerts wurde in OpenSSH 5.1 eingeführt, und es sieht so aus, als ob die Zahl zuvor fest auf 10 festgelegt war. Wenn SieMaxSessions
auf dem Server einen Wert übersteigen , wird diessshd[####]: error: no more sessions
im Serverprotokoll angezeigt.quelle
Ich bin auf einem Server mit einer früheren Version von OpenSSH auf dieses Problem gestoßen. Ich kontrolliere den Server und habe das Problem gelöst, indem ich zwei CNAMEs in meiner benannten Konfiguration erstellt habe:
Dann in meiner lokalen ssh-Client-Konfiguration:
Die ControlPath-Anweisung ist so, dass die Control-Socket-Namen nicht aufeinander treten.
Das war's, aber um die Verwaltung zu vereinfachen, habe ich auf der Clientseite ein Wrapper-Skript für 'ssh' geschrieben. Es versteht sich, dass es "Gruppen" von Hosts gibt (in diesem Fall umfassen realhost, realhost1, realhost2 eine Gruppe). Wenn Sie 'sshwrapper realhost' ausgeben und keine offenen Kanäle vorhanden sind, werden alle drei geöffnet und eine Sitzung wird gestartet. Bei der nächsten Ausführung werden die offenen Verbindungen pro Kanal gezählt und die neue Sitzung im Kanal mit den wenigsten Verbindungen geöffnet.
Mit einem echten und zwei "falschen" Hosts kann ich 30-mal eine Verbindung herstellen, bevor eine Fehlermeldung angezeigt wird. Die Anmeldung ist extrem schnell, außer dass die anfängliche Zeit ein oder zwei Sekunden dauert, da zu diesem Zeitpunkt alle drei Steuerkanäle geöffnet sind.
quelle