Secure Shell (SSH) es una de esas herramientas con las que todo usuario de Linux probablemente trabajará en algún momento. Con SSH, puede iniciar sesión de manera fácil (y segura) en servidores y escritorios remotos para administrar, desarrollar y verificar esas máquinas.
Usar SSH es tan simple como:
ssh [email protected]
O incluso simplemente:
ssh 192.168.1.11
Por supuesto, cambiaría la dirección IP por la dirección (o dominio) de la máquina a la que necesita acceder.
SSH se vuelve un poco menos simple cuando tiene numerosas máquinas a las que accede con diferentes configuraciones (como diferentes nombres de usuario o claves de autenticación SSH). Imagínese si tuviera 20 o más servidores diferentes a los que tuviera que iniciar sesión diariamente. No solo tendría que realizar un seguimiento de las direcciones IP o los dominios de esos servidores, sino que también tendría que recordar qué nombres de usuario o claves de autenticación se utilizaron. Eso por sí solo podría ser bastante abrumador.
Afortunadamente, SSH le permite crear un archivo de configuración para albergar toda esa información. Entonces, en lugar de tener que escribir algo como ssh [email protected] -p 2222simplemente puede escribir sshweb1.
Déjame mostrarte cómo se hace esto.
Creando el archivo de configuración SSH
Inicie sesión en la máquina Linux que usa para SSH en todas esas máquinas remotas. Abra una ventana de terminal y cree el nuevo archivo de configuración con el comando que se muestra en Figura A.
Figura A
Dado que este es un archivo nuevo, será un lienzo en blanco al que podemos comenzar a agregar configuraciones para servidores. Supongamos que desea configurar los siguientes servidores remotos:
-
web1 en 192.168.1.100 con usuario olivia
-
db1 en 192.168.1.101 con el usuario nathan y la clave SSH ~/.ssh/id_nathan
-
docker1 en 192.168.1.102 con el usuario lilly en el puerto 2222
Nuestra primera entrada se verá así:
Host "web1" Hostname "192.168.1.100" User olivia
Si guarda y cierra el archivo en este punto, puede usar SSH en 192.168.1.100 con el comando:
ssh web1
Avancemos y configuremos las siguientes dos entradas, que se verán así:
Host db1 Hostname "192.168.1.101" User nathan IdentityFile ~/.ssh/id_nathan PubkeyAuthentication yes Host docker1 Hostname "192.168.1.102" User lilly Port 2222
Guarde y cierre el archivo. Ahora puede proteger el shell en esas máquinas con los comandos:
ssh web1 ssh db1 ssh docker1
Puede usar cualquier apodo que necesite para cada host, solo hágalos memorables, para que no olvide a qué máquina está tratando de llegar y tenga que hacer referencia constantemente al archivo de configuración para borrar su memoria.
Sin embargo, digamos que usa el mismo nombre de usuario en todos sus servidores remotos, pero usa un nombre de usuario diferente en su máquina local. Por ejemplo, el nombre de usuario de su máquina local puede ser jack, pero ha creado el usuario administrador en todos sus servidores remotos. Podría crear una sola entrada para todos esos servidores con un comodín en la dirección IP como esta:
Host 192.168.1.* User admin
La configuración anterior se colocaría en la parte superior de su archivo de configuración.
Luego, puede configurar cada servidor individualmente según sea necesario, omitiendo la opción Usuario. Por ejemplo, si ambos servidores en 192.168.1.200 y 192.168.1.201 usan autenticación de clave SSH, puede configurar entradas de esta manera:
Host web2 Hostname 192.168.1.200 IdentityFile ~/.ssh/id_admin PubkeyAuthentication yes Host web3 Hostname 192.168.1.201 IdentityFile ~/.ssh/id_admin PubkeyAuthentication yes
Debido a que aplicamos el administrador de usuarios a toda la gama de máquinas en el esquema de dirección IP 192.168.1.x, ese nombre de usuario se aplicará a todas las conexiones. También puede anular esa configuración global agregando una línea de configuración de usuario según sea necesario.
El archivo de configuración de SSH permite varias otras opciones (todas las cuales se pueden leer en la documentación oficial de configuración de SSH), pero estos ejemplos que se muestran arriba deberían ser todo lo que necesita para comenzar con el archivo de configuración de SSH.
Y eso es todo lo que hay que hacer para usar el archivo de configuración SSH para ayudar a que su acceso remoto con Secure Shell sea aún más fácil.