Dominando la Autenticación Segura en SSH: Claves Públicas y Privadas
Clasificado en Informática
Escrito el en
español con un tamaño de 3,87 KB
Autenticación de Usuarios en SSH
SSH ofrece diversos métodos para verificar la identidad de un usuario. A continuación, se detallan los principales:
Autenticación por Contraseña
El protocolo SSH permite autenticar a un usuario utilizando su contraseña. El servidor comprueba que el usuario existe y que la contraseña es correcta. La única diferencia fundamental con otros protocolos es que:
- La contraseña nunca viaja en texto plano por la red.
- El usuario debe escribir la contraseña cada vez que quiera iniciar sesión.
Autenticación con Clave Pública y Privada (Asimétrica)
Este método de autenticación utiliza un esquema de clave pública/privada generadas por el usuario. También se conoce como clave asimétrica y utiliza los siguientes componentes:
Componentes de la Clave Asimétrica
- Clave Pública: Se copia a todos los servidores a los que el usuario quiere conectarse.
- Clave Privada: Solo la posee el usuario. Para mayor seguridad, esta clave está cifrada con una frase de paso.
Un texto cifrado con la clave pública solo puede ser descifrado usando la clave privada correspondiente. Inversamente, un texto cifrado con la clave privada solo puede descifrarse mediante su clave pública asociada.
Configuración de OpenSSH
Los archivos de configuración principales de OpenSSH se encuentran en el directorio /etc/ssh/. Los más importantes son:
Configuración del Servidor (sshd_config)
El archivo sshd_config describe la configuración del servidor SSH. Permite configurar:
- El puerto de escucha.
- La versión del protocolo.
- La ubicación de la clave privada de la máquina y el algoritmo utilizado para generarla (RSA o DSA).
Archivos de Configuración y Claves
Además de sshd_config, existen otros archivos relevantes en la configuración del servidor y del cliente:
Archivos del Servidor y Cliente
ssh_config: Describe la configuración del cliente SSH.ssh_host_rsa_key: Clave RSA privada de la máquina (servidor).ssh_host_rsa_key.pub: Clave RSA pública de la máquina (servidor).ssh_known_hosts: Almacena las claves públicas RSA de otras máquinas conocidas.
Archivos del Usuario
~/.ssh/id_rsa: Clave privada RSA del usuario.~/.ssh/id_rsa.pub: Clave pública RSA del usuario.~/.ssh/authorized_keys: Contiene las claves públicas del usuario autorizadas para la autenticación en ese servidor.
Nota sobre Protocolos: Si el servidor de OpenSSH detecta un par de claves RSA, utilizará el protocolo SSH1. Si se utilizan claves DSA, existirán archivos similares pero incluirán dsa en lugar de rsa en sus nombres.
El Agente de Autenticación SSH-agent
El agente de autenticación ssh-agent permite simplificar el proceso de conexión a una máquina remota cuando se utiliza la autenticación por clave pública.
El ssh-agent actúa como un almacén seguro de las claves privadas, y se las suministra al cliente SSH cada vez que este las necesita, evitando que el usuario deba introducir la frase de paso repetidamente.
Definición de Palabra de Paso
Una palabra de paso (passphrase) es una cadena de caracteres o palabras utilizadas para autenticar a un usuario (generalmente para cifrar la clave privada). Las palabras de paso suelen tener más longitud que las contraseñas, ya que normalmente son frases en vez de una sola palabra y admiten espacios o tabuladores. Si se olvida, no se puede recuperar.