O SSH usa alguma compactação?


44

Estou curioso, o SSH comprime seus dados antes de enviá-los / recebê-los? Se isso não acontecer, por padrão, ele pode ser ativado?

Respostas:


48

Não e sim. Mais ou menos. Ou seja, ele suporta compactação (zlib ou zlib-ish, pelo que me lembro), mas uma cópia do OpenSSH não o habilita por padrão, embora algumas distribuições possam habilitá-lo por padrão (não acho que o Ubuntu )

Veja man ssh_configpara detalhes. Você está procurando as opções Compressione CompressionLevel, que podem ser configuradas /etc/ssh/ssh_config.

Observe que também há uma Compressionopção para o lado do servidor sshd_configque determina se a compactação é permitida (é por padrão). Mais uma vez, veja man sshd_configpara detalhes.

Você também pode ativar a compactação por sessão, usando a opção de linha de comando -C.

Observe que a compactação pode realmente ter um impacto ligeiramente negativo no desempenho se a conexão entre você e o servidor for rápida (por exemplo, na mesma LAN ou apenas em boas conexões à Internet) ou se um ou ambos os lados tiverem uma CPU lenta (a compactação é um pouco razoável) do tempo da CPU).

Hoje em dia, para a maioria das pessoas, sugiro usá-lo apenas quando necessário. Normalmente, para links com menos de 5 a 10 Mbps e somente ao transmitir muitos dados em massa (transferências de arquivos ainda não compactados, encaminhamento X11 ou VNC, coisas assim).


1
Na verdade, eu quero tentar usá-lo para acelerar a execução de aplicativos X sobre SSH. Meu servidor possui muitos recursos gratuitos de CPU e RAM e o cliente também não é muito fraco.
Ivan

2
A compactação no sshd_config pode ser "yes" ou "delayed". "delayed" é mais seguro, pois uma vulnerabilidade zlib não o expõe, por isso é o padrão, mas alguns clientes antigos, como o Tunnelier, suportam apenas "yes". openssh.com/txt/release-4.2
endolith

Compressionpode ser tanto yesou noa página man diz ... Obrigado de qualquer forma, necessária para descompactá-lo para o meu telefone Android ...
Wilf

@ Ivan Você já experimentou o NoMachine NX ou freenx? Isso deve ser mais rápido do que apenas comprimir o ssh.
gmatht

Observe que CompressionLevelera uma opção disponível apenas para o protocolo SSH 1, que não está mais ativado por padrão nas versões atuais do OpenSSH.
Ckujau

23

Você pode ativar a compactação gzip em qualquer SSH. Coloque Compression yesno seu ~/.ssh/config, e deve funcionar. Como alternativa, tente executar sshcom a -Copção


8

Na página do manual ssh (digite man sshpara ver a coisa toda):

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

Então apenas mude:

ssh hostname

para:

ssh -C hostname

2
Você pode ativar esta opção no PuTTY se estiver usando o Windows: Conexão -> SSH -> Opções de protocolo -> Ativar compactação.
Wug

0

você pode ativar a compactação, -Cmas ela não funcionará se o servidor não tiver permissão para gastar energia do kernel, não permitindo a compactação. Por exemplo, por isso, alterei o local do host de alguns dados do Strato para um servidor meu. Reconheci isso por causa do uso de uma conexão lenta de download de 2Mbit e upload de 0,3Mbit e verifiquei a diferença de velocidade dependendo do nível de compactação, pois o nível superior não é sempre mais rápido, pois consome a energia do processador ou do servidor.
mas, no meu caso, ele faz um bom trabalho, pois reduz o tempo necessário para um sexto do tempo anterior.


Eu verifico sempre o momento de iniciar a rede se a compressão do Settet está ganhando velocidade, fazendo uma transferência rápida nas duas opções e verificando o tempo. A resposta resultante é que a configuração automática de compactação ou não. Desde que eu não tenho que verificar minha conexão o tempo todo antes de transferir algo, pois é sempre melhor ajustado.
Andreas Bartels

0

O mais fácil é por que usar a opção -o, no CLI. Pode ser usado com qualquer opção de configuração, por exemplo,

ssh -o "Compression no" -v <HOST>
# or
ssh -o "Compression yes" -v <HOST>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.