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:
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.
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 7Cuando 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).
¿Qué ocurre durante la conexión?
- Intentas hacer la conexión al servidor remoto a través del cliente.
- El servidor remoto envía su clave pública al cliente.
- El cliente de SSH busca la huella digital de la clave en ~/.ssh/known_hosts.
- El cliente de SSH carga y verifica la clave.
- Tiene lugar la autenticación del usuario.
- 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.
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]
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).
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 OfficeConoce 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