Est-ce que SSH utilise une compression?


45

Je suis curieux. SSH compresse-t-il ses données avant de les envoyer / recevoir? Si ce n'est pas le cas par défaut, peut-il être activé?

Réponses:


49

Non et oui. Genre de. C’est-à-dire qu’il supporte la compression (zlib ou zlib-ish, si je me souviens bien), mais une copie de stock d’OpenSSH ne l’a pas activé par défaut, bien que certaines distributions puissent l’activer par défaut (je ne pense pas que Ubuntu ).

Voir man ssh_configpour plus de détails. Vous cherchez les Compressionet CompressionLeveloptions que vous pouvez ensuite mettre en /etc/ssh/ssh_config.

Notez qu’il existe également une Compressionoption pour le côté serveur sshd_configqui détermine si la compression est autorisée (par défaut). Encore une fois, voir man sshd_configpour plus de détails.

Vous pouvez également activer la compression session par session en utilisant l'option de ligne de commande -C.

Notez que la compression peut avoir un impact légèrement négatif sur les performances si la connexion entre vous et le serveur est rapide (par exemple, sur le même réseau local ou sur de très bonnes connexions Internet) ou sur un ou les deux côtés ont un processeur lent (la compression mange un peu de temps CPU).

Ces jours-ci, pour la plupart des gens, je suggérerais de l'utiliser uniquement au besoin. En général, pour les liens de moins de 5-10 Mbps et uniquement lors de la transmission de nombreuses données en vrac (transferts de fichiers non déjà compressés, transfert X11 ou VNC, etc.).


1
En fait, je veux essayer de l'utiliser pour accélérer l'exécution d'applications X sur SSH. Mon serveur dispose de nombreuses ressources CPU et RAM libres et le client n’est pas trop faible non plus.
Ivan

2
La compression dans sshd_config peut être "oui" ou "différée". "delay" est plus sûr, car une vulnérabilité zlib ne vous expose pas, c'est donc la valeur par défaut, mais certains anciens clients comme Tunnelier ne prennent en charge que "oui". openssh.com/txt/release-4.2
endolith

Compressionpeut soit être yesou nola page de manuel dit ... Merci quand même, nécessaire pour le décompresser pour mon téléphone Android ...
Wilf

@ Ivan Avez-vous essayé NoMachine NX ou freenx? Cela devrait être plus rapide que de simplement compresser ssh.
Gmatht

Notez que CompressionLevelcette option était uniquement disponible pour le protocole SSH 1, qui n'est plus activé par défaut avec les versions actuelles d'OpenSSH.
Ckujau

24

Vous pouvez activer la compression gzip sur n’importe quel SSH. Mettez Compression yesdans votre ~/.ssh/config, et ça devrait marcher. Sinon, essayez de courir sshavec l' -Coption.


8

Depuis la page de manuel ssh (tapez man sshpour voir le tout):

 -C      Requests compression of all data (including stdin, stdout,
         stderr, and data for forwarded X11 and TCP connections).  The
         compression algorithm is the same used by gzip(1), and the
         “level” can be controlled by the CompressionLevel option for pro-
         tocol version 1.  Compression is desirable on modem lines and
         other slow connections, but will only slow down things on fast
         networks.  The default value can be set on a host-by-host basis
         in the configuration files; see the Compression option.

Alors changez simplement:

ssh hostname

à:

ssh -C hostname

2
Vous pouvez activer cette option dans PuTTY si vous utilisez Windows: Connexion -> SSH -> Options de protocole -> Activer la compression.
Wug

0

vous pouvez activer la compression avec -Cmais cela ne fonctionnera pas si le serveur n'est pas autorisé à dépenser l'énergie du noyau pour cela en ne permettant pas la compression pour cela. Par exemple, à cause de cela, j'ai changé l'emplacement de l'hôte de certaines données propres de Strato sur un de mes serveurs. Je l'ai reconnu en raison de l'utilisation d'une connexion lente de téléchargement de 2Mbit et de 0,3Mbit et j'ai vérifié la différence de vitesse en fonction du niveau de compression, car un niveau supérieur n'est pas toujours plus rapide car il consomme de la puissance de votre processeur ou de celui du serveur.
mais dans mon cas, cela fait du bon travail, car il réduit le temps nécessaire à un sixième du temps précédent.


Je vérifie toujours au démarrage du réseau si la compression Settet gagne en vitesse en effectuant un transfert rapide dans les deux options et en vérifiant l'heure. La réponse obtenue est que la configuration automatisée de la compression ou non. Depuis, je n'ai pas besoin de vérifier ma connexion tout le temps avant de transférer quelque chose car elle est toujours mieux ajustée.
Andreas Bartels le

0

Le plus simple est d'utiliser l'option -o, sur la cli. Il peut être utilisé avec n'importe quelle option de configuration, par exemple

ssh -o "Compression no" -v <HOST>
# or
ssh -o "Compression yes" -v <HOST>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.