SSH utilizza una compressione?


45

Sono curioso, SSH comprime i suoi dati prima di inviarli / riceverli? In caso contrario, può essere attivato?

Risposte:


49

No e si. Tipo. Vale a dire, supporta la compressione (zlib o zlib-ish, come ricordo), ma una copia stock di OpenSSH non lo ha abilitato di default, anche se alcune distribuzioni potrebbero abilitarlo di default (non penso che Ubuntu lo faccia ).

Vedi man ssh_configper i dettagli. Stai cercando le opzioni Compressione CompressionLevel, che puoi quindi impostare /etc/ssh/ssh_config.

Si noti che esiste anche Compressionun'opzione per il lato server in sshd_configcui determina se la compressione è consentita (è per impostazione predefinita). Ancora una volta, vedi man sshd_configper i dettagli.

È inoltre possibile attivare la compressione in base alla sessione utilizzando l'opzione della riga di comando -C.

Nota che la compressione può effettivamente avere un impatto leggermente negativo sulle prestazioni se la connessione tra te e il server è veloce (ad es. Sulla stessa LAN o solo su connessioni Internet davvero buone) o uno o entrambi i lati hanno una CPU lenta (la compressione consuma un bel po ' del tempo della CPU).

In questi giorni, per la maggior parte delle persone, suggerirei di usarlo solo se necessario. In genere per collegamenti inferiori a 5-10 Mbps e solo quando si passano molti dati in blocco (trasferimenti di file non già compressi, inoltro X11 o VNC, cose del genere).


1
In realtà voglio provare a usarlo per velocizzare l'esecuzione di applicazioni X su SSH. Il mio server ha molte risorse gratuite di CPU e RAM e anche il client non è troppo debole.
Ivan,

2
La compressione in sshd_config può essere "sì" o "ritardata". "ritardato" è più sicuro, poiché una vulnerabilità di zlib non ti espone, quindi è l'impostazione predefinita, ma alcuni vecchi client come Tunnelier supportano solo "sì". openssh.com/txt/release-4.2
endolith

Compressionpuò essere yeso nola pagina man dice ... Grazie comunque, ho dovuto decomprimerlo per il mio telefono Android ...
Wilf

@Ivan Hai provato NoMachine NX o freenx? Dovrebbe essere più veloce della semplice compressione di ssh.
Gmatht

Si noti che CompressionLevelera un'opzione disponibile solo per il protocollo SSH 1 che non è più abilitato per impostazione predefinita con le versioni correnti di OpenSSH.
ckujau,

24

Puoi attivare la compressione gzip su qualsiasi SSH. Metti Compression yesnel tuo ~/.ssh/confige dovrebbe funzionare. In alternativa, prova a correre sshcon l' -Copzione.


8

Dalla pagina man di ssh (digita man sshper vedere tutto):

 -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.

Quindi basta cambiare:

ssh hostname

a:

ssh -C hostname

2
È possibile abilitare questa opzione in PuTTY se si utilizza Windows: Connessione -> SSH -> Opzioni protocollo -> Abilita compressione.
Wug

0

puoi attivare la compressione con -Cma non funzionerà se al server non è consentito spendere energia del kernel per essa non consentendo la compressione per questo. Ad esempio, per questo motivo ho modificato la posizione dell'host di alcuni dati da Strato a un mio server. L'ho riconosciuto a causa dell'utilizzo di un download lento da 2Mbit e di una connessione upload da 0,3Mbit e ho verificato la differenza di velocità in base al livello di compressione poiché il livello più alto non è sempre più veloce in quanto fa schifo della potenza del tuo processore o del server.
ma nel mio caso fa un buon lavoro in quanto riduce il tempo necessario a un 6 ° di prima.


Al momento controllo sempre all'avvio della rete se la compressione Settet sta guadagnando velocità facendo un rapido trasferimento in entrambe le opzioni e controllando il tempo. La risposta risultante è quella di impostare automaticamente la compressione o meno. Dal momento che non devo controllare la mia connessione continuamente prima di trasferire qualcosa in quanto è sempre meglio regolato.
Andreas Bartels,

0

Il motivo più semplice è usare l'opzione -o, sul cli. Può essere utilizzato anche con qualsiasi opzione di configurazione, ad es

ssh -o "Compression no" -v <HOST>
# or
ssh -o "Compression yes" -v <HOST>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.