4 formas de acelerar las conexiones SSH en Linux
SSH es el método más popular y seguro para administrar servidores Linux de forma remota. Uno de los desafíos de la administración remota de servidores es la velocidad de conexión, especialmente cuando se trata de la creación de sesiones entre las máquinas remotas y locales.
Hay varios cuellos de botella en este proceso, un escenario es cuando se conecta a un servidor remoto por primera vez; normalmente se necesitan unos segundos para establecer una sesión. Sin embargo, cuando se intenta iniciar varias conexiones seguidas, esto provoca una sobrecarga (combinación de tiempo de cálculo excesivo o indirecto, memoria, ancho de banda u otros recursos relacionados para realizar la operación).
En este artículo, compartiremos cuatro consejos útiles sobre cómo acelerar las conexiones SSH remotas en Linux.
1. Forzar la conexión SSH a través de IPV4
OpenSSH admite tanto IPv4 como IP6, pero a veces las conexiones IPv6 tienden a ser más lentas. Por lo tanto, puedes considerar forzar conexiones ssh solo a través de IPv4, usando la siguiente sintaxis:
ssh -4 [email
Alternativamente, use la directiva AddressFamily (especifica la familia de direcciones que se usará al conectarse) en su archivo de configuración ssh /etc/ssh/ssh_config (configuración global) o ~ /.ssh/config (archivo específico del usuario).
Los valores aceptados son “cualquier”, “inet” solo para IPv4 o “inet6”.
vi ~.ssh/config
Aquí hay una guía de inicio útil sobre cómo configurar el archivo de configuración ssh específico del usuario:
- Cómo configurar conexiones SSH personalizadas para simplificar el acceso remoto
Además, en la máquina remota, también puede indicarle al demonio sshd que considere conexiones a través de IPv4 usando la directiva anterior en el archivo /etc/ssh/sshd_config.
2. Deshabilite la búsqueda de DNS en una máquina remota
De forma predeterminada, el demonio sshd busca el nombre del host remoto y también verifica que el nombre de host resuelto para la dirección IP remota se asigne a la misma dirección IP. Esto puede provocar retrasos en el establecimiento de la conexión o la creación de sesiones.
La directiva UseDNS controla la funcionalidad anterior; para deshabilitarlo, búsquelo y descomentelo en el archivo /etc/ssh/sshd_config. Si no está configurado, agréguelo con el valor no
.
UseDNS no
3. Reutilizar la conexión SSH
Se utiliza un programa cliente ssh para establecer conexiones con un demonio sshd que acepta conexiones remotas. Puede reutilizar una conexión ya establecida al crear una nueva sesión ssh y esto puede acelerar significativamente las sesiones posteriores.
Puede habilitar esto en su archivo ~/.ssh/config.
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
La configuración anterior (Host *) permitirá la reutilización de la conexión para todos los servidores remotos a los que se conecte mediante estas directivas:
- ControlMaster: permite compartir múltiples sesiones a través de una única conexión de red.
- ControlPath: define una ruta al socket de control utilizado para compartir la conexión.
- ControlPersist: si se usa junto con ControlMaster, le dice a ssh que mantenga la conexión maestra abierta en segundo plano (esperando futuras conexiones del cliente) una vez que se haya cerrado la conexión del cliente inicial.
Puede habilitar esto para conexiones a un servidor remoto específico, por ejemplo:
Host server1
HostName www.example.com
IdentityFile ~/.ssh/webserver.pem
User username_here
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
De esta manera, solo sufrirá la sobrecarga de la primera conexión y todas las conexiones posteriores serán mucho más rápidas.
4. Utilice un método de autenticación SSH específico
Otra forma de acelerar las conexiones ssh es utilizar un método de autenticación determinado para todas las conexiones ssh, y aquí recomendamos configurar el inicio de sesión sin contraseña ssh usando ssh keygen en 5 sencillos pasos.
Una vez hecho esto, utilice la directiva PreferredAuthentications, dentro de los archivos ssh_config (globales o específicos del usuario) anteriores. Esta directiva define el orden en el que el cliente debe probar los métodos de autenticación (puede especificar una lista separada por comandos para usar más de un método).
PreferredAuthentications=publickey
Opcionalmente, utilice esta sintaxis a continuación desde la línea de comando.
ssh -o "PreferredAuthentications=publickey" [email
Si prefiere la autenticación de contraseña que se considera insegura, utilice esta.
ssh -o "PreferredAuthentications=password" [email
Finalmente, debe reiniciar su demonio sshd después de realizar todos los cambios anteriores.
systemctl restart sshd #Systemd
service sshd restart #SysVInit
Para obtener más información sobre las directivas utilizadas aquí, consulte las páginas del manual ssh_config y sshd_config.
man ssh_config
man sshd_config
Consulte también estas guías útiles para proteger ssh en sistemas Linux:
- 5 mejores prácticas para asegurar y proteger el servidor SSH
- Cómo desconectar conexiones SSH inactivas o inactivas en Linux
¡Eso es todo por ahora! ¿Tiene algún consejo o truco para acelerar las conexiones SSH? Nos encantaría conocer otras formas de hacer esto. Utilice el formulario de comentarios a continuación para compartir con nosotros.