Configurando SSH

Una de las principales herramientas que utilizo a diario es la terminal y frecuentemente implica que deba conectarme a distintos servidores, utilizar múltiples llaves y usuarios, por eso una sencilla configuración para SSH me ha salvado de estar recordando usuarios (o contraseñas).

La configuración es simple, por de facto y convención, SSH utiliza el directorio (oculto) .ssh en $HOME para almacenar y recuperar las llaves y configuraciones, y es en el archivo config donde se colocan las siguientes opciones, que se explican por sí solas:

1
2
3
4
5
6
7
8
Host serv
Hostname 8.8.8.8
User john
IdentityFile ~/.ssh/llaveprivada

Host github
Hostname github.com
IdentityFile ~/.ssh/millaveparagithub

Así puedo evitarme escribir (o usar un alias) para esto:

1
ssh -i ~/.ssh/llaveprivada john@8.8.8.8

Y simplemente utilizar el alias (Host):

1
ssh serv

Por supuesto, hay muchísimas opciones disponibles.


Tratando de disminuir el tiempo de conexión al servidor, un amigo me ha comentado sobre reutilizar las conexiones con una simple configuración.

Gracias a la filosofía unix, podemos traducir las conexiones (sockets) previamente establecidas en archivos, y reutilizarlas, lo cual disminuye significantemente el tiempo de conexión al servidor en nuevas sesiones, útil si necesitamos tener múltiples sesiones (a veces prefiero tmux)

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

Solo debemos aseguranros que la carpeta sockets exista y queda listo.