Pesquisa de site

4 maneiras de acelerar conexões SSH no Linux


SSH é o método mais popular e seguro para gerenciar servidores Linux remotamente. Um dos desafios do gerenciamento remoto de servidores são as velocidades de conexão, especialmente quando se trata de criação de sessões entre máquinas remotas e locais.

Existem vários gargalos nesse processo, um cenário é quando você está se conectando a um servidor remoto pela primeira vez; normalmente leva alguns segundos para estabelecer uma sessão. Porém, quando você tenta iniciar múltiplas conexões em sucessão, isso causa uma sobrecarga (combinação de tempo de computação excessivo ou indireto, memória, largura de banda ou outros recursos relacionados para realizar a operação).

Neste artigo, compartilharemos quatro dicas úteis sobre como acelerar conexões SSH remotas no Linux.

1. Forçar conexão SSH por IPV4

OpenSSH suporta IPv4/IP6, mas às vezes as conexões IPv6 tendem a ser mais lentas. Portanto, você pode considerar forçar conexões ssh apenas em IPv4, usando a sintaxe abaixo:

ssh -4 [email 

Como alternativa, use a diretiva AddressFamily (especifica a família de endereços a ser usada durante a conexão) em seu arquivo de configuração ssh /etc/ssh/ssh_config (configuração global) ou ~ /.ssh/config (arquivo específico do usuário).

Os valores aceitos são “any ”, “inet ” somente para IPv4 ou “inet6 ”.

vi ~.ssh/config 

Aqui está um guia inicial útil sobre como configurar o arquivo de configuração ssh específico do usuário:

  1. Como configurar conexões SSH personalizadas para simplificar o acesso remoto

Além disso, na máquina remota, você também pode instruir o daemon sshd a considerar conexões sobre IPv4 usando a diretiva acima no arquivo /etc/ssh/sshd_config.

2. Desative a pesquisa de DNS na máquina remota

Por padrão, o daemon sshd procura o nome do host remoto e também verifica se o nome do host resolvido para o endereço IP remoto é mapeado de volta para o mesmo endereço IP. Isto pode resultar em atrasos no estabelecimento da conexão ou na criação da sessão.

A diretiva UseDNS controla a funcionalidade acima; para desativá-lo, pesquise e remova o comentário no arquivo /etc/ssh/sshd_config. Se não estiver definido, adicione-o com o valor no.

UseDNS  no

3. Reutilize a conexão SSH

Um programa cliente ssh é usado para estabelecer conexões com um daemon sshd que aceita conexões remotas. Você pode reutilizar uma conexão já estabelecida ao criar uma nova sessão ssh e isso pode acelerar significativamente as sessões subsequentes.

Você pode ativar isso em seu arquivo ~/.ssh/config.

Host *
	ControlMaster auto
	ControlPath  ~/.ssh/sockets/%r@%h-%p
	ControlPersist 600

A configuração acima (Host *) permitirá a reutilização da conexão para todos os servidores remotos aos quais você se conecta usando estas diretivas:

  • ControlMaster – permite o compartilhamento de múltiplas sessões em uma única conexão de rede.
  • ControlPath – define um caminho para o soquete de controle usado para compartilhamento de conexão.
  • ControlPersist – se usado junto com ControlMaster, diz ao ssh para manter a conexão mestre aberta em segundo plano (aguardando futuras conexões do cliente) assim que a conexão inicial do cliente for fechada.

Você pode habilitar isso para conexões com um servidor remoto específico, por exemplo:

Host server1
	HostName   www.example.com
	IdentityFile  ~/.ssh/webserver.pem
      	User username_here
	ControlMaster auto
	ControlPath  ~/.ssh/sockets/%r@%h-%p
	ControlPersist  600

Dessa forma, você sofrerá apenas a sobrecarga de conexão da primeira conexão e todas as conexões subsequentes serão muito mais rápidas.

4. Use um método de autenticação SSH específico

Outra maneira de acelerar as conexões ssh é usar um determinado método de autenticação para todas as conexões ssh, e aqui recomendamos configurar o login ssh sem senha usando ssh keygen em 5 etapas fáceis.

Feito isso, use a diretiva PreferredAuthentications, dentro dos arquivos ssh_config (globais ou específicos do usuário) acima. Esta diretiva define a ordem em que o cliente deve tentar métodos de autenticação (você pode especificar uma lista separada por comandos para usar mais de um método).

PreferredAuthentications=publickey 

Opcionalmente, use esta sintaxe abaixo na linha de comando.

ssh -o "PreferredAuthentications=publickey" [email 

Se você preferir uma autenticação por senha considerada insegura, use-a.

ssh -o "PreferredAuthentications=password" [email 

Finalmente, você precisa reiniciar seu daemon sshd depois de fazer todas as alterações acima.

systemctl restart sshd	#Systemd
service sshd restart 		#SysVInit

Para obter mais informações sobre as diretivas usadas aqui, consulte as páginas man ssh_config e sshd_config.

man ssh_config
man sshd_config 

Confira também estes guias úteis para proteger o ssh em sistemas Linux:

  1. 5 melhores práticas para proteger e proteger o servidor SSH
  2. Como desconectar conexões SSH inativas ou ociosas no Linux

É tudo por agora! Você tem dicas/truques para acelerar as conexões SSH. Adoraríamos ouvir sobre outras maneiras de fazer isso. Use o formulário de comentários abaixo para compartilhar conosco.