Mehrere SSH-Verbindungen zum selben System - ist das möglich?

14

Ich habe einen Linux-Computer, der als Server fungiert und eingehende SSH-Verbindungen akzeptieren kann.

Ist es möglich, mehrere Geräte wie SSH, Laptop und andere Desktops gleichzeitig zuverlässig über SSH mit demselben Server zu verbinden?

Danke für die Hilfe.

Sam3000
quelle
63
Warum hast du es nicht einfach versucht, bevor du gefragt hast?
Dmitry Grigoryev
1
Darüber hinaus können Sie mehrere Verbindungen zwischen demselben Systempaar herstellen. Sie können auch feststellen screenoder moshnützlich sein, wenn Sie das Verhalten "Windows-Remotedesktop" für die Befehlszeile möchten: eine einzelne Schnittstelle, die über mehrere Links übergeben wird.
pjc50
7
Es gibt zwei Gründe, warum ich es nicht einfach versucht habe, bevor ich gefragt habe. Das erste ist der Mangel an Vertrauen in mein eigenes Verständnis von Linux - wenn es funktioniert hätte, hätte ich seiner Zuverlässigkeit immer noch nicht vertraut, wenn ich mich darauf verlassen würde. Die zweite ist, dass die Superuser-Community im Allgemeinen großartig und schnell ist, um denjenigen zu helfen, die fragen - danke Community.
Sam3000

Antworten:

50

Die kurze Antwort - Ja. Es funktioniert normalerweise standardmäßig.

Die lange Antwort - Je nachdem, wofür Sie es verwenden, kann es bei mehreren Verbindungen langsamer werden, aber das ist ein Bandbreitenproblem, kein SSH-Problem.

Adgelbfish
quelle
15

Ja, es ist möglich, es ist das Standardverhalten.

Vertrauen

Sie können sich darauf verlassen, wenn Sie eine aktualisierte Version von verwenden sshund das Protokoll nicht mehr 1 ist.

grep "Protocol"  /etc/ssh/sshd_config

Der obige Befehl sollte Ihnen geben Protocol 2.

Grenzen für die Verbindungen

Sie können sshals die verschlüsselte Entwicklung von sehen telnet, die im fernen '69 geboren wurde, um den Fernzugriff auf einen Server zu ermöglichen. Beachten Sie, dass die sshVerbindung über TCP hergestellt wird und auch X-Sitzungen (grafische Sitzung) weitergeleitet werden können. Multitasking und Multi-User liegen in der inneren Natur von Unix ... auch wenn es nicht ohne Grenzen ist !!!

Sie können einige dieser Grenzwerte in den TCP- und SSH-Grenzwerten sehen:

  • cat /proc/sys/net/core/somaxconn, normalerweise 128, um die maximale ausstehende TCP- Verbindung zu sehen, die Sie haben können;

    Die Variable kern.ipc.somaxconn sysctl (8) begrenzt die Größe der Listen-Warteschlange zum Akzeptieren neuer TCP-Verbindungen. Der Standardwert von 128 ist normalerweise zu niedrig für eine zuverlässige Verarbeitung neuer Verbindungen auf einem stark ausgelasteten Webserver.

  • cat /proc/sys/net/core/netdev_max_backlog, normalerweise 1000, die maximale Länge der TCP-Paketwarteschlange
  • less /etc/security/limits.conf Sie können die Grenzen für den Benutzer finden.
  • MaxSessions in/etc/ssh/sshd_config

    MaxSessions Gibt die maximale Anzahl offener Sitzungen an, die pro Netzwerkverbindung zulässig sind. Der Standardwert ist 10 .

  • #MaxStartups 10:30:60normalerweise kommentiert in der /etc/ssh/sshd_configund standardmäßig auf 10 gesetzt

    Gibt die maximale Anzahl gleichzeitiger nicht authentifizierter Verbindungen zum SSH-Dämon an. Der Standardwert ist 10.


Verweise

  • man ssh, man sshdAuf Ihrem Computer.
  • Die Manpage von sshd oder von sshd_config .
Hastur
quelle
2
somaxconnist die maximale Anzahl ausstehender Verbindungen, dh der maximale Listen-Backlog, nicht die 'maximale Anzahl von TCP-Verbindungen, die Sie haben können'. Die maximale Anzahl von TCP-Verbindungen, die Sie haben können, ist um Größenordnungen größer als 128. Andernfalls wären praktische Server nicht möglich.
user207421
@ejp danke für den Spot, ich hatte es eilig und ich vermisse "neu" vor der Verbindung. Übrigens "hervorragend" ist genauer. Ich habe ein paar Worte mehr hinzugefügt, in der Hoffnung, dass es klarer wird.
Hastur
MaxSessionsBeschränkt nur die Anzahl der gemultiplexten Sitzungen über eine einzelne TCP-Verbindung ( weitere Details ), sodass Sie nicht erneut eine Verbindung zum selben Host herstellen müssen. (Ein Standardlimit von 10 für die Gesamtzahl der SSH-Sitzungen wäre absurd. Stellen Sie sich einen gemeinsam genutzten Webhost mit Hunderten oder Tausenden von Benutzerkonten vor und nur 10 SSH-Sitzungen sind zulässig.)
Josef sagt Reinstate Monica am
@Josef Es ist geschrieben MaxSessions Gibt die maximale Anzahl offener Sitzungen an, die pro Netzwerkverbindung zulässig sind , nichts anderes (wie in der Manpage angegeben): möglicherweise nicht klar genug. Vielen Dank für den zusätzlichen Hinweis und um diesen Punkt zu unterstreichen. (Hinweis: Übrigens ist die übliche Verwendung eines Linux-Computers mit ssh kein gemeinsam genutzter Webhost mit einem Benutzerkonto von 10 ^ 5 +, und in diesem Fall kann die Standardeinstellung per Definition nicht angemessen sein :-))
Hastur
6

Ja, das ist es total. Dies sollte jedoch implementierungsdefiniert sein. Sie können auch Ihren eigenen (wahrscheinlich nicht so sicheren und noch schlimmeren) SSH-Server programmieren, der nicht mehrere Verbindungen verarbeiten kann. Aber genau wie gewöhnliche HTTP-Server dies natürlich unterstützen, tut dies auch openssh.

Eigentlich ist dies das eigentliche Konzept von Unix: Ein Mehrbenutzersystem, bei dem ein Server die ganze Arbeit erledigt und nur kleine Clients eine Verbindung herstellen (Terminals).

Larkey
quelle
4

Ja, das ist sehr häufig. In der Tat ist es absolut notwendig, wenn es als Dateiserver und von vielen Benutzern verwendet wird. SFTP verwendet SSH, und es gibt viele EDI-Aktivitäten, die auch davon abhängen.

Von Geräten aus können Ereignisse mit benutzerdefinierten Benutzeranmeldungen (z. B. Ausschalten oder Neustart) ausgelöst werden.

Berücksichtigen Sie auch SCP (WinSCP wird häufig für den Zugriff auf Quellcode verwendet) und KDE-Benutzer können weiterhin Fisch verwenden: in Konqueror.

Bemerkenswert ist auch die Verwendung zusätzlicher Ports bei Verlust während der Wartung (z. B. Ubuntu Do-Release-Upgrade).

Also ja, ich nehme an, Sie hatten noch nie mehrere PuTTY-Terminals geöffnet?

mckenzm
quelle
Nein, seltsamerweise hatte ich nicht! Aber danke für die zusätzlichen Informationen, was meinten Sie mit zusätzlichen Ports für die Wartung?
Sam3000
1
Während eines Do-Relesase-Upgrades von einem Remote-Terminal besteht das Risiko, dass die Kommunikation verloren geht (z. B. Neustart von SSH oder Netzwerk). Wenn diese auf Port 22 nicht wiederhergestellt werden können, bietet Ubuntu einen alternativen Port 1022 unter Verwendung einer zweiten SSH-Instanz an. Das Update erfolgt innerhalb von "screen", auf das nach erneuter Verbindung mit screen -x / screen -r und einem sudo su zugegriffen werden kann. (Schauen Sie in "Bildschirm" und "tmux"). Viele Informationen dazu.
McKenzm