Si alguna vez tienes que realizar alguna administración remota, en algún momento tendrás que iniciar sesión en un servidor Linux y ponerte a trabajar. Para hacer eso, necesitará usar SSH (también conocido como Secure Shell). Para aquellos que nunca han estado expuestos a una herramienta de este tipo, estarán de enhorabuena porque no sólo facilita el inicio de sesión en sistemas remotos, sino que también es muy seguro.
SSH es un medio seguro para iniciar sesión en una máquina remota. Una vez que haya iniciado sesión, puede ejecutar cualquier comando que necesite para trabajar con el servidor. Antes de pensar que usar SSH es difícil, no se preocupe. Usar SSH no sólo es bastante fácil, sino que también es bastante poderoso.
Cómo usar SSH para conectarse a un servidor remoto
Lo que necesitarás: Quiero guiarte por los primeros pasos del uso de SSH. Estaré demostrando Pop!_OS Linux pero esta información funcionará en cualquier distribución de Linux que admita SSH (que es la mayoría). Lo único que necesitarás seguir junto con este tutorial son dos instancias en ejecución de Linux. Eso es todo. Pongámonos manos a la obra con SSH.
El uso de SSH le permite iniciar sesión desde una máquina local en una máquina remota. Necesitará cuentas de usuario en ambas máquinas. Esas cuentas no tienen que ser las mismas en cada máquina (lo explicaré en un minuto), pero sí necesitas tener credenciales de inicio de sesión para ambas.
También: ¿Necesitas antivirus en Linux?
También necesitará la dirección IP (o dominio) del servidor en el que desea iniciar sesión. Digamos, por ejemplo, que nuestro servidor remoto está en la dirección IP 192.168.1.11 y nuestra cuenta de usuario es la misma en ambas máquinas. Inicie sesión en su computadora de escritorio, abra una ventana de terminal e inicie sesión en la máquina remota con el comando:
Se le solicitará su nombre de usuario en la máquina remota. Una vez que se haya autenticado exitosamente con la contraseña, iniciará sesión en la máquina remota, donde podrá comenzar a trabajar.
Digamos que la máquina remota está asociada con el dominio www.example.com. Podrías iniciar sesión con el comando:
Ahora bien, ¿qué pasa si su nombre de usuario en la máquina remota no es el mismo que el del escritorio? Si su nombre de usuario en la máquina remota es olivia, puede iniciar sesión con el comando:
Se le solicitará la contraseña de olivia (no la del usuario local).
Normalmente, SSH usa el puerto 22. Algunos administradores pueden cambiar ese puerto (por motivos de seguridad). Si el administrador del servidor ha configurado SSH para escuchar el puerto 2022, no puede simplemente escribir el comando SSH estándar para iniciar sesión. En su lugar, debe agregar -p (para puerto) opción así:
ssh olivia@192.168.1.11 -p 2022
Configuración del sitio SSH
Recordar todas esas direcciones IP y nombres de usuario puede ser un verdadero dolor de cabeza para algunos. Afortunadamente, SSH le permite crear un archivo de configuración que contiene toda esta información. Digamos, por ejemplo, que tiene la siguiente lista de servidores en los que inicia sesión:
- servidor web – 192.168.1.11
- servidor de correo electrónico – 192.168.1.12
- servidor de base de datos – 192.168.1.13
Configuremos SSH de manera que solo tengas que iniciar sesión con los comandos:
- sshweb1
- correo electrónico ssh1
- ssh db1
También asumiremos que el usuario de web1 es olivia, el usuario de email1 es nathan y el usuario de db1 es el mismo que el usuario de la máquina local. Para configurar esto, debemos crear un archivo de configuración en el directorio ~/.ssh. Para eso, regrese a la ventana de terminal en su máquina local y emita el comando:
nano /home/USER/.ssh/config
Donde USUARIO es su nombre de usuario de Linux.
En ese archivo, agregue las siguientes líneas:
Host web1 Hostname 192.168.1.11 User olivia Host email1 Hostname 192.168.1.12 User nathan Host db1 Hostname 192.168.1.13
Guarde y cierre el archivo. Ahora debería poder iniciar sesión en esos diferentes servidores con los comandos más cortos (es decir, ssh web1, ssh email1 y ssh db1). Es importante recordar, sin embargo, que para web1 se le solicitará la contraseña de olivia, email1 le pedirá la contraseña de nathan y db1 le pedirá el mismo usuario que el local.
Ejecutar comandos en una máquina remota con SSH
Este es un pequeño truco útil. Digamos que no necesariamente desea iniciar sesión en una máquina remota, pero sí necesita ejecutar un comando. Por ejemplo, desea enumerar el contenido del directorio de inicio del usuario remoto. Para eso, podrías emitir el comando:
ssh olivia@192.168.1.11 ls /home/olivia
Como hemos configurado nuestro archivo de configuración, podemos truncar ese comando para:
Podemos cortar un poco más de ese comando porque Linux tiene un acceso directo para el directorio de inicio de un usuario (porque /home/olivia y ~/ son lo mismo). Para eso, nuestro comando se convierte en:
Y eso, queridos amigos, son los conceptos básicos del uso de SSH para iniciar sesión en una máquina Linux remota. Si alguna vez tiene que realizar alguna administración remota de una máquina Linux, esto es lo que necesitará saber. La próxima vez, les presentaré la autenticación de clave SSH, para inicios de sesión remotos aún más seguros.