Qu'est-ce qui peut causer une session ssh lente? [fermé]

46

Je ssh sur l'hôte distant mais les performances du terminal sont médiocres. Les symboles que je tape ne sont pas affichés immédiatement, mais avec un certain retard. Parfois, deux symboles sont affichés en même temps après le délai.

lexsys
la source
Mosh est un bon substitut de ssh pour éviter ce problème: mosh.mit.edu
Steven C. Howell
6
serveur ssh ... pourquoi était-ce fermé? c'est clairement un problème de serveur. Bien sûr, certaines des réponses ici sont basées sur des opinions, mais la question devrait aller.
j0h
5
Pourquoi cette question est-elle fermée? Dans mon cas, il s’agissait du côté serveur - un port UDP fermé 67/68. DHCP était activé sur une image générique Vultr. Il tentait de renouveler constamment l’adresse IP du pub, mais était bloqué par la CSF. Permettre à ces ports a semblé résoudre le problème, encore une fois, le rapide SSH (et d’autres services réseau). Gardez un œil sur cela si vous utilisez cette image ou d'autres images VPS par défaut / similaires.
Dhaupin
5
C'est clairement un problème de réseau (commun). Je crois qu'il n'y a aucune raison de le fermer, et ce n'est certainement pas hors sujet. Même (en particulier) lorsque le problème peut avoir plusieurs causes difficiles à identifier.
mardi

Réponses:

17

Une latence élevée est une autre cause des mauvaises performances ssh. Je recommande fortement d’utiliser mtr pour remplacer traceroute. Il devrait pouvoir vous donner une idée de l'endroit où vos problèmes de réseau pourraient survenir.

David Pashley
la source
13

Désactiver le transfert X11 si vous n'en avez pas besoin (ssh -x) et activer la compression (ssh -C) peut également accélérer votre session.

Boisé
la source
9

Je peux penser à deux causes possibles:

  1. Perte de paquets sur la connexion
  2. Charge élevée sur le serveur.
Shoan
la source
3

J'ai essayé de mesurer les performances du réseau en découvrant rapidement que le terminal fonctionnait bien. Que s'est-il passé?

Nous avons un équilibrage de charge entre routeur de deux canaux Internet. Parfois, il achemine mon trafic ssh à travers wan1 et parfois à travers wan2. J'ai proposé qu'il y ait quelque chose qui cloche avec un seul canal. J'ai donc mesuré les performances du réseau avec mtr (excellent outil!) Pour deux canaux séparément.

Ouais! wan2 a 21 sauts avec 110 ms et wan1 en a 15 avec seulement 21 ms! Le problème est la latence wan2.

lexsys
la source
3

Utilisez Compression et CompressionLevel of 9. Cela devrait aider un peu. Vous pouvez configurer ces paramètres dans / etc / ssh / ssh_config. Mais si le réseau actuel est très pauvre, ces astuces ne feront pas beaucoup de bien.

Saurabh Barjatiya
la source
2

La cause la plus évidente de ce comportement est un lien saturé ou des paquets perdus. Combien de sauts avez-vous de votre poste de travail à la machine dans laquelle vous vous inscrivez? Avez-vous analysé un traceroute, le cas échéant?

Jan Jungnickel
la source
2

Si vous utilisez OpenSSH sur un long-fat-pipe-pipe (bande passante élevée + latence élevée), assurez-vous d'utiliser au moins la version 4.7 des deux côtés, car elle contient des correctifs qui obligent OpenSSH à utiliser une plus grande taille de fenêtre tcp.

 * The SSH channel window size has been increased, and both ssh(1)
   sshd(8) now send window updates more aggressively. These improves
   performance on high-BDP (Bandwidth Delay Product) networks.

Cela peut être important si vous souhaitez utiliser la connexion à son plein potentiel, sinon l'expéditeur pourrait devoir attendre un accusé de réception avant de pouvoir continuer à envoyer.

knweiss
la source
1

Comme d'autres l'ont déjà dit, cela peut provenir de la latence, d'une perte de réseau, d'un serveur lent.
Parfois, vous voyez 2 caractères par type car la pile TCP moderne utilise un algorithme appelé Naggle .

rayon
la source
1
L'algorithme de Nagle est toujours désactivé sur les applications interactives telles que telnet et SSH
LapTop006
1
Vous n'avez pas assez d'informations pour dire «toujours». Nous ne savons pas quel client / serveur ssh il utilise. Nous ne connaissons pas le système d'exploitation qu'il utilise. etc. Avec certains systèmes d'exploitation, un paramètre de niveau noyau pourrait avoir une incidence sur TCP_NODELAY défini au niveau de l'application.
rayon
1

Il pourrait également s'agir d'une tentative de SSH Brute Force qui étrangle votre connexion. Chaque fois que ma session est lente, je vérifie les journaux et, dans de nombreux cas, quelqu'un essaie des mots de passe comme des fous.

Raupach
la source
1

Un DNS mal configuré peut en être la cause. Le serveur répondra très bien une fois connecté et téléchargera et téléchargera des fichiers assez rapidement, mais les connexions SSH seront lentes.

ServerChecker
la source
1
J'ai découvert que je pouvais supprimer une entrée IP dans / etc / hosts pour un serveur dont la connexion SSH était lente et qui accélère généralement la connexion initiale. Mais la vraie solution consiste à faire fonctionner le DNS correctement.
ServerChecker
1

Une chose à regarder est simplement la mémoire du serveur. Je courais une machine virtuelle Ubuntu avec 256 Mo de mémoire et SSH était vraiment lent. Le doubler à 512Mo a résolu le problème.

GateKiller
la source