Los 4 archivos más importantes para las conexiones SSH en Linux

Si eres un administrador de Linux, conoces el valor de Secure Shell. Sin esta herramienta, acceder de forma remota a un servidor Linux (o enviar archivos a través de un canal seguro) podría ser todo un desafío. Pero con SSH, puedes usarlo sin problemas. Sin embargo, para aquellos que son nuevos en la administración de Linux, es posible que no comprendan completamente cómo funciona SSH. Seguramente, puedes sentarte en una máquina y ejecutar el siguiente comando:

ssh [email protected]

Podrás iniciar sesión y hacer tu trabajo. ¿Pero qué ocurre detrás de esa conexión? ¿Cuáles son los componentes que la hacen funcionar?

Pensé que sería una buena idea desglosar SSH en los cuatro archivos más importantes para las conexiones SSH, para que puedas comenzar a usar la herramienta con un mejor entendimiento de cómo funciona.

Echemos un vistazo a esos archivos clave de SSH.

Índice de Contenido
  1. known_hosts
  2. authorized_keys
  3. ssh_config
  4. sshd_config
  5. Conoce esos archivos

known_hosts

Este es un archivo muy importante para SSH. El archivo ~/.ssh/known_hosts contiene las huellas digitales SSH de las máquinas en las que has iniciado sesión. Estas huellas digitales se generan a partir de la clave SSH del servidor remoto. Cuando te conectas por Secure Shell a una máquina remota por primera vez, se te pregunta si deseas continuar la conexión (Figura A).

Cómo configurar las políticas de contraseñas en Windows 7

Cuando respondes "sí" a esta pregunta, la huella digital del host remoto se guarda en el archivo known_hosts. Esa clave aparecerá como una cadena de caracteres aleatoria. Cada entrada comenzará con |1| (Figura B).

Los 4 archivos más importantes para las conexiones SSH en Linux - Seguridad | Imagen 1 Newsmatic

¿Qué ocurre durante la conexión?

  1. Intentas hacer la conexión al servidor remoto a través del cliente.
  2. El servidor remoto envía su clave pública al cliente.
  3. El cliente de SSH busca la huella digital de la clave en ~/.ssh/known_hosts.
  4. El cliente de SSH carga y verifica la clave.
  5. Tiene lugar la autenticación del usuario.
  6. Si la autenticación es exitosa, inicias sesión en la máquina remota.

Nuevamente, durante ese proceso de conexión, si no se encuentra la huella digital remota, el cliente de SSH te preguntará si deseas continuar y (cuando respondas que sí) guardará la huella digital en ~/.ssh/known_hosts.

authorized_keys

Dentro del directorio ~/.ssh/, hay otro archivo llamado authorized_keys. Este es muy diferente al archivo known_hosts. Lo que authorized_keys contiene son todas las claves de autenticación SSH que se copiaron en el servidor desde clientes remotos. Esto se utiliza para la autenticación de clave SSH (ver: Cómo configurar la autenticación de clave SSH).

Para hacer que la autenticación por clave funcione, se debe copiar la clave pública del cliente en el archivo ~/.ssh/authorized_keys del servidor remoto. La forma más sencilla de hacerlo es utilizando el comando ssh-copy-id en el cliente, así:

ssh-copy-id [email protected]

Comparativa: Dell Latitude vs Lenovo ThinkPad - Cuál es la mejor opción para ti

Se te solicitará la contraseña del usuario remoto. Después de una autenticación exitosa, la clave pública del cliente se copiará en el archivo ~/.ssh/authorized_keys del servidor remoto. Si abres ese archivo, verás que cada entrada comienza con ssh-rsa y termina con el nombre de usuario@nombre_de_host de la máquina cliente (Figura C).

Los 4 archivos más importantes para las conexiones SSH en Linux - Seguridad | Imagen 2 Newsmatic

Una vez que se guarda esa clave en authorized_keys (en el servidor remoto), puedes iniciar sesión en ese servidor (desde el cliente cuya clave pública se ha guardado) con autenticación por clave de SSH.

ssh_config

El archivo /etc/ssh/ssh_config es el archivo que se utiliza para la configuración del cliente de SSH a nivel del sistema. Las configuraciones que se encuentren aquí solo se aplicarán cuando se utilice el comando ssh para conectarse a otro host. Por lo general, no necesitarás editar este archivo.

sshd_config

Por otro lado, el archivo /etc/ssh/sshd_config es el archivo de configuración para el demonio SSH. Aquí es donde se configuran cosas como:

  • Puerto SSH predeterminado.
  • Autenticación de clave pública.
  • Permisos de inicio de sesión de root.
  • Autenticación de contraseña.
  • X11Forwarding.

Supongamos, por ejemplo, que deseas permitir solo la autenticación por clave y deshabilitar la autenticación por contraseña. En el servidor remoto, editarías el archivo sshd_config de la siguiente manera:

  • Cambia #PubkeyAuthentication yes a PubkeyAuthentication yes.
  • Cambia #PasswordAuthentication yes a PasswordAuthentication no.

Una vez que hayas realizado esos cambios, reinicia el servicio de SSH y el servidor remoto solo permitirá conexiones desde máquinas clientes con una entrada en ~/.ssh/authorized_keys. ¿No hay ninguna entrada en el archivo authorized_keys del servidor remoto? No hay acceso.

Cómo activar y gestionar el modo protegido en Microsoft Office

Conoce esos archivos

Estás mejor preparado para usar la herramienta SSH con un entendimiento de los cuatro archivos de SSH mencionados anteriormente. ¿Necesitas saber cómo funcionan estos archivos? No realmente. Pero como administrador, estás mejor capacitado cuando conoces las herramientas que utilizas más allá de un conocimiento superficial.

man ssh
man ssh_config
man sshd_config

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Los 4 archivos más importantes para las conexiones SSH en Linux , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.