Plusieurs connexions SSH au même système - est-ce possible?

14

J'ai un ordinateur Linux agissant comme un serveur qui peut accepter les connexions SSH entrantes.

Est-il possible de connecter de manière fiable plusieurs appareils en même temps, tels que mon téléphone et mon ordinateur portable, ainsi que d'autres ordinateurs de bureau, au même serveur à l'aide de SSH?

Merci pour l'aide.

Sam3000
la source
63
Pourquoi n'avez-vous pas essayé avant de demander?
Dmitry Grigoryev
1
Non seulement cela, mais vous pouvez avoir plusieurs liens entre la même paire de systèmes. Vous pouvez également trouver screenou moshutile si vous souhaitez le comportement "Bureau à distance Windows" pour la ligne de commande: une seule interface qui est transmise autour de plusieurs liens.
pjc50
7
Il y a 2 raisons pour lesquelles je n'ai pas simplement essayé avant de demander; le premier est le manque de confiance que j'ai dans ma propre compréhension de linux - si cela avait fonctionné, je n'aurais toujours pas fait confiance à sa fiabilité si j'en venais à m'y fier. La seconde est que la communauté Superuser est, en général, géniale et rapide pour aider ceux qui demandent - merci à la communauté.
Sam3000

Réponses:

50

La réponse courte - Oui. Cela fonctionne généralement par défaut.

La réponse longue - Selon l'utilisation que vous en faites, il peut ralentir avec plusieurs connexions, mais c'est un problème de bande passante, pas un problème ssh.

adgelbfish
la source
15

Oui c'est possible, c'est le comportement par défaut.

Confiance

Vous pouvez compter si vous utilisez une version mise à jour de sshet que le protocole n'est plus 1.

grep "Protocol"  /etc/ssh/sshd_config

La commande ci-dessus devrait vous donner Protocol 2.

Limites pour les connexions

Vous pouvez voir sshcomme l'évolution cryptée de telnet, né dans l'extrême 69 pour permettre l'accès à distance à un serveur. Notez que se sshconnecte via TCP et qu'il est également capable de transférer des sessions X (session graphique). Le multitâche et le multi-utilisateur sont dans la nature intérieure d'Unix ... même si ce n'est pas sans limites !!!

Vous pouvez voir certaines de ces limites dans les limites TCP et SSH:

  • cat /proc/sys/net/core/somaxconn, Généralement 128, pour voir le TCP maximum exceptionnelle connexion que vous pouvez avoir;

    La variable kern.ipc.somaxconn sysctl (8) limite la taille de la file d'attente d'écoute pour accepter de nouvelles connexions TCP. La valeur par défaut de 128 est généralement trop faible pour une gestion robuste des nouvelles connexions sur un serveur Web lourdement chargé.

  • cat /proc/sys/net/core/netdev_max_backlog, généralement 1000, la longueur maximale de la file d'attente de paquets TCP
  • less /etc/security/limits.conf vous pouvez trouver les limites pour l'utilisateur.
  • MaxSessions dans/etc/ssh/sshd_config

    MaxSessions Spécifie le nombre maximal de sessions ouvertes autorisées par connexion réseau. La valeur par défaut est 10 .

  • #MaxStartups 10:30:60généralement commenté dans le /etc/ssh/sshd_configet par défaut défini sur 10

    Spécifie le nombre maximal de connexions simultanées non authentifiées au démon SSH ... La valeur par défaut est 10.


Les références

  • man ssh, man sshdsur votre machine.
  • La page de manuel de sshd ou de sshd_config .
Hastur
la source
2
somaxconnest le nombre maximum de connexions en suspens , c'est-à-dire le retard d'écoute maximal, et non le «nombre maximal de connexions TCP que vous pouvez avoir». Le nombre maximal de connexions TCP que vous pouvez avoir est de l'ordre de grandeur supérieur à 128. Sinon, des serveurs pratiques ne seraient pas possibles.
user207421
@ejp merci pour la place, j'étais pressé et il me manque "nouveau" avant la connexion. BTW "exceptionnel" est plus précis. J'ai ajouté quelques mots de plus dans l'espoir que ce soit plus clair.
Hastur
MaxSessionslimite uniquement le nombre de sessions multiplexées sur une seule connexion TCP ( plus de détails ) afin de ne pas vous limiter à vous connecter à nouveau au même hôte. (Une limite par défaut de 10 pour le nombre total de sessions ssh serait absurde. Imaginez un hébergeur partagé avec des centaines ou des milliers de comptes d'utilisateurs et seulement 10 sessions ssh autorisées.)
Josef dit Reinstate Monica
@Josef Il est écrit MaxSessions Spécifie le nombre maximum de sessions ouvertes autorisées par connexion réseau , rien de différent (comme indiqué dans la page de manuel): peut-être pas assez clair. Merci pour la référence supplémentaire et pour souligner ce point. (Remarque: BTW, l'utilisation courante d'un ordinateur Linux avec ssh n'est pas un hôte Web partagé avec un compte d'utilisateurs 10 ^ 5 +, et dans ce cas, le paramètre par défaut ne peut pas être approprié par définition :-))
Hastur
6

Oui, tout à fait. Mais cela devrait être défini par l'implémentation. Vous pouvez également programmer votre propre serveur ssh (probablement pas si sûr et pire) qui ne peut pas gérer plusieurs connexions. Mais tout comme les serveurs HTTP courants prennent bien sûr cela en charge, openssh le fait aussi.

En fait, c'est le concept même d'Unix: un système multi-utilisateur où un serveur fait tout le travail et seuls les petits clients se connectent (terminaux).

larkey
la source
4

Oui, c'est très courant. En effet, s'il est utilisé comme serveur de fichiers et par de nombreux utilisateurs, il est absolument essentiel. SFTP utilise SSH et de nombreuses activités EDI en dépendent également.

À partir des appareils, il est possible de déclencher des événements avec des connexions utilisateur personnalisées (telles que la mise hors tension ou le redémarrage).

Considérez également SCP (WinSCP est couramment utilisé pour accéder au code source), et les utilisateurs de KDE peuvent toujours utiliser fish: dans Konqueror.

Il convient également de noter l'utilisation de ports supplémentaires en cas de perte lors de la maintenance (Ubuntu do-release-upgrade, disons).

Alors oui, je suppose que vous n'avez jamais ouvert plusieurs terminaux PuTTY?

mckenzm
la source
Pas assez étrangement, je ne l'avais pas fait! Mais merci pour les informations supplémentaires, que vouliez-vous dire sur les ports supplémentaires pour la maintenance?
Sam3000
1
Lors de la mise à niveau de la relocalisation depuis un terminal distant, il y a un risque de perte de communications (redémarrage de SSH ou du réseau, par exemple). Si ceux-ci ne peuvent pas être rétablis sur le port 22, Ubuntu fournit un autre port 1022 utilisant une deuxième instance SSH. La mise à jour se produit à l'intérieur de "screen" accessible avec screen -x / screen -r après reconnexion et un sudo su. (regardez dans "screen" et "tmux"). Beaucoup d'informations à ce sujet.
mckenzm