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:
- 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:
- 5 melhores práticas para proteger e proteger o servidor SSH
- 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.