Los fundamentos del uso de SSH

Si alguna vez tiene que realizar una administración remota, en algún momento tendrá que iniciar sesión en un servidor Linux y ponerse 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, les espera una sorpresa.

¿Qué es SSH?

SSH es un medio seguro de 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 solo es bastante fácil, sino que también es bastante poderoso.

Quiero guiarlo a través de los primeros pasos para usar SSH. Haré una demostración en 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 deberá seguir junto con este tutorial son dos instancias en ejecución de Linux. Eso es todo. Ocupémonos de SSH.

Inicio de sesión SSH básico

El uso de SSH le permite iniciar sesión desde una máquina local a una máquina remota. Necesitará cuentas de usuario en ambas máquinas. Esas cuentas no tienen que ser las mismas en cada máquina (explicaré esto en un minuto), pero sí necesita tener credenciales de inicio de sesión para ambas.

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 pedirá su nombre de usuario en la máquina remota. Una vez que se haya autenticado correctamente con la contraseña, iniciará sesión en la máquina remota, donde podrá comenzar a trabajar.

Ahora, ¿qué sucede si su nombre de usuario en la máquina remota no es el mismo que el del escritorio? Digamos que su nombre de usuario en la máquina remota es olivia. Para iniciar sesión con ese nombre de usuario, el comando sería:

Se le pedirá 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 configuró SSH para escuchar el puerto 2022, no puede simplemente escribir el comando SSH estándar para iniciar sesión. En su lugar, debe agregar la opción -p así:

ssh [email protected] -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 alberga 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 modo que solo tenga que iniciar sesión con los comandos:

  • sshweb1
  • correo electrónico ssh1
  • ssh db1

También supondremos que el usuario en web1 es olivia, el usuario en email1 es nathan y el usuario en db1 es el mismo que el usuario en 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 que se muestra en Figura A.

ssha.jpg

Creación de un nuevo archivo de configuración SSH con el editor nano.

Imagen: Jack Wallen

Donde USUARIO es su nombre de usuario de Linux.

En ese archivo, agregue las siguientes líneas:

Host web1 Nombre de host 192.168.1.11 Usuario olivia Host email1 Nombre de host 192.168.1.12 Usuario nathan Host db1 Nombre de host 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). Sin embargo, es importante recordar que para web1 se le pedirá 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 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 [email protected] ls /home/olivia

Como hemos configurado nuestro archivo de configuración, podemos truncar ese comando para:

Podemos eliminar 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, mis queridos amigos, es lo básico del uso de SSH para iniciar sesión en una máquina Linux remota. Si alguna vez tiene que realizar una administración remota de una máquina Linux, esto es lo que necesitará saber. La próxima vez, le presentaré la autenticación de clave SSH, para inicios de sesión remotos aún más seguros.

Jack Wallen: He aquí cómo…

Deja un comentario