Cómo acelerar las conexiones SSH en GNU/Linux
Las conexiones SSH son una de las herramientas más utilizadas por los SysAdmin, ello principalmente debido a su flexibilidad y a las muy buenas opciones de seguridad, pero como sucede con casi todas las opciones de conectividad hay muchas formas de utilizarla y algunas implican que la velocidad de la cual se dispone no siempre es la mejor. En esos casos, lamentablemente, vamos a tener que recurrir a algunas formas de ajuste que nos permitan obtener una calidad de conexión decente y segura, por eso queremos mostrar 3 formas de acelerar conexiones SSH en GNU/Linux.
Básicamente, queremos hablar de opciones de configuración que nos permitirán sortear obstáculos como una mala conexión, o el hecho de que estemos realizando varias conexiones en forma simultánea hacia un mismo servidor, en algún caso incluso accediento a herramientas gráficas mediante X Forwarding, lo cual puede hacer que la velocidad requerida sea alta.
Una de las primeras cosas que podemos hacer es forzar las conexiones SSH a través de IPv4, y es que este protocolo admite conexiones también al más nuevo IPv6, el cual en algún momento terminará de ser absolutamente necesario pero por el momento no lo es, y el hecho de utilizar soporte para ambos implica que a veces la conexión puede ser algo más lenta. Pero podemos conectarnos a cualquier servidor mediante SSH únicamente a través de IPv4 utilizando el parámetro “-4” de la siguiente manera:
# ssh -4 usuario@servidorremoto.com
Otra forma de conseguir esto es modificar el archivo de configuración /etc/ssh/ssh_config, donde debemos buscar la línea “AddressFamily” y dejarla con el valor “inet”, que es el que implica que nos conectaremos mediante IPv4.
Otra configuración que nos permitirá mejorar la velocidad es la de desactivar DNS Lookup en el equipo remoto, y es que todo esto de buscar la IP del equipo y a partir de ella obtener el nombre de host es algo que requiere de recursos y contribuye a hacernos las cosas un poco más lentas, por lo cual también debemos dirigirnos al archivo de configuración del servidor SSH, (/etc/ssh/sshd_config) y dejar la opción de “UseDNS” con el valor “no”. También podemos forzar la reutilización de conexiones SSH, es decir que al momento de establecer una nueva conexión se intentará reutilizar alguna ya establecida, algo que sin duda puede ser mucho más rápido que crear una nueva.
Para esto, vamos al archivo /etc/ssh/ssh_config y añadir las siguientes líneas:
ControlMaster auto
ControlPath -/.ssh/sockets/%r%h-%p
ControlPersist 600
La última línea (ControlPersist) indicará al servicio SSH que mantenga una conexión abierta -pero en segundo plano- durante 600 segundos luego de haber sido cerrada, para reutilizarla en caso de recibir una nueva petición de conexión. Si agregamos una línea “Hostname nombredeservidor” podemos indicar que esta configuración únicamente sea utilizada para las conexiones SSH a un determinado equipo, para lo cual reemplazamos nombredeservidor con el nombre apropiado.
Con estas simples modificaciones podemos lograr alguna mejora en la velocidad de las conexiones SSH y también en el tiempo que estas tardan en establecerse, algo que no nos será perceptible si contamos con mucho ancho de banda y trabajamos en una red local, pero que seguramente agradeceremos si nos conectamos a varios servidores remotos.
El artículo Cómo acelerar las conexiones SSH en GNU/Linux ha sido originalmente publicado en Linux Adictos.