Servidores Dedicados y VPS10 de diciembre de 2025 56 vistas

Configurar una clave SSH en VPS Linux

Configurar una clave SSH en VPS Linux

Introducción a las Claves SSH

Las claves SSH (Secure Shell) ofrecen un método de autenticación mucho más seguro que las contraseñas tradicionales. En lugar de escribir una contraseña en cada conexión, se utiliza un par de claves criptográficas:

  • Clave privada : Permanece en su ordenador local (nunca la comparta)
  • Clave pública : Instalada en el servidor VPS

Cuando se conecta, el servidor verifica que su clave privada coincida con la clave pública registrada. Si la coincidencia es validada, se autentica instantáneamente.

Ventajas de las claves SSH

Aspecto Contraseña Clave SSH
Seguridad Vulnerable a ataques de fuerza bruta Casi imposible de descifrar
Conveniencia Requiere entrada manual en cada conexión Conexión automática
Compartir Riesgo si se divulga Clave pública compartible sin riesgos
Longitud Generalmente 8-20 caracteres 2048-4096 bits de cifrado
Automatización Difícil de automatizar con scripts Ideal para scripts

🖥️ Método 1 : Generar una Clave SSH en Windows con PuTTY

Etapa 1 : Descargar PuTTY y PuTTYgen

PuTTY es el cliente SSH más popular para Windows. PuTTYgen es la utilidad de generación de claves incluida.

  1. Visite el sitio oficial: https://www.putty.org/
  2. Descargue el paquete de instalación MSI (64 bits o 32 bits según su sistema)
  3. Instale PuTTY - PuTTYgen se incluirá automáticamente

También puede descargar solo puttygen.exe si ya tiene PuTTY.

Archivo PuTTYgen descargado El archivo puttygen.exe descargado

Etapa 2 : Abrir PuTTYgen

  1. Abra PuTTYgen a través de :

    • Menú InicioTodos los programasPuTTYPuTTYgen
    • O haga doble clic en puttygen.exe
  2. La interfaz de generación de claves se mostrará:

Interfaz principal de PuTTYgen Interfaz principal de PuTTYgen

Etapa 3 : Configurar los parámetros

Antes de generar la clave, verifique los parámetros en la parte inferior de la ventana:

Parámetro Valor recomendado Descripción
Tipo de clave RSA o EdDSA (Ed25519) Algoritmo de cifrado
Número de bits 4096 (RSA) o 256 (Ed25519) Longitud de la clave

💡 Recomendación : Para una máxima seguridad, elija RSA 4096 bits o EdDSA (Ed25519) que es más moderno y eficiente.

Etapa 4 : Generar el par de claves

  1. Haga clic en el botón Generate
  2. Importante : Mueva el ratón de forma aleatoria en el área vacía para generar entropía (aleatoriedad criptográfica)

Generación de la clave - mover el ratón Mueva el ratón para generar aleatoriedad

  1. Espera a que la barra de progreso se complete

Etapa 5 : Configurar y guardar las claves

Una vez generada la clave, verá esta pantalla:

Clave SSH generada en PuTTYgen Clave SSH generada con éxito

Agregar una frase de paso (recomendado)

La frase de paso añade una capa de seguridad adicional. Incluso si alguien obtiene su clave privada, no podrá usarla sin la frase de paso.

Configuración de la frase de paso Introducción de la frase de paso

  1. En Key passphrase, ingrese una frase secreta
  2. Confírmela en Confirm passphrase

Guardar la clave privada

  1. Haga clic en Save private key
  2. Elija una ubicación segura
  3. Nombre el archivo (ej: mi_clave_vps.ppk)

Guardar la clave privada Botón Save private key

Guardando el archivo PPK Guardando el archivo .ppk

Guardar la clave pública

  1. Haga clic en Save public key
  2. Nombre el archivo (ej: mi_clave_vps.pub)

Guardando la clave pública Guardando la clave pública

Copiar la clave pública en formato OpenSSH

Importante : Para servidores Linux, debe copiar la clave en formato OpenSSH:

  1. Seleccione todo el texto en la zona "Public key for pasting into OpenSSH authorized_keys file"
  2. Cópielo (Ctrl+C)
  3. Guárdelo para el siguiente paso

El formato se ve así:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDx... rsa-key-20241210

Etapa 6 : Configurar PuTTY para usar la clave

  1. Abra PuTTY
  2. En el menú de la izquierda, vaya a : ConnectionSSHAuthCredentials

Configuración de credenciales en PuTTY Sección Credentials en PuTTY

  1. Haga clic en Browse junto a "Private key file for authentication"

Botón Browse para la clave privada Selección de la clave privada

  1. Seleccione su archivo .ppk

Seleccionar archivo PPK Archivo .ppk seleccionado

  1. Vuelva a Session, ingrese la IP de su VPS y guarde la sesión

🐧 Método 2 : Generar una Clave SSH en Linux/macOS

Etapa 1 : Abrir el Terminal

  • Linux : Ctrl+Alt+T o busque "Terminal"
  • macOS : Aplicaciones → Utilidades → Terminal

Etapa 2 : Generar el par de claves

Opción A : Clave RSA 4096 bits (compatible universalmente)

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Opción B : Clave Ed25519 (recomendada, más moderna)

ssh-keygen -t ed25519 -C "[email protected]"

Etapa 3 : Seguir las instrucciones

Generando par de claves ed25519 público/privado.
Introduce el archivo donde guardar la clave (/home/usuario/.ssh/id_ed25519):
  1. Ubicación : Presiona Enter para aceptar la ubicación por defecto (~/.ssh/id_ed25519)
Introduce la frase de paso (vacío para ninguna frase):
Introduce la misma frase de paso de nuevo:
  1. Frase de paso : Ingresa una frase secreta (recomendado) o presiona Enter para ninguna

Paso 4 : Verificar la creación

ls -la ~/.ssh/

Deberías ver:

  • id_ed25519 (o id_rsa) - Clave privada
  • id_ed25519.pub (o id_rsa.pub) - Clave pública

Paso 5 : Mostrar la clave pública

cat ~/.ssh/id_ed25519.pub

Resultado:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... [email protected]

Copia esta línea completa para instalarla en el servidor.


🚀 Instalar la Clave Pública en el VPS

Método 1 : Con ssh-copy-id (Linux/macOS - Recomendado)

El comando ssh-copy-id automatiza la instalación:

ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@IP_DEL_VPS

Ejemplo:

ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]

Deberás ingresar tu contraseña una última vez. Luego, la clave se instalará automáticamente.

Método 2 : Instalación manual

Si ssh-copy-id no está disponible:

Paso 1 : Conéctate al VPS con contraseña

ssh root@IP_DEL_VPS

Paso 2 : Crear el directorio .ssh (si es necesario)

mkdir -p ~/.ssh
chmod 700 ~/.ssh

Paso 3 : Crear/Editar el archivo authorized_keys

nano ~/.ssh/authorized_keys

Paso 4 : Pegar la clave pública

Pega la clave pública copiada anteriormente (en una sola línea).

Para PuTTY, es el contenido de "Clave pública para pegar en el archivo authorized_keys de OpenSSH".

Paso 5 : Guardar y establecer los permisos

chmod 600 ~/.ssh/authorized_keys

Paso 6 : Probar la conexión

Desconéctate y vuelve a conectar:

exit
ssh root@IP_DEL_VPS

Si todo funciona, estarás conectado sin contraseña (o con tu frase de paso si has establecido una).

Método 3 : En un solo comando (desde tu PC local)

cat ~/.ssh/id_ed25519.pub | ssh root@IP_DEL_VPS "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

🔒 Asegurar el Servidor SSH

Una vez configuradas las claves SSH, refuerza la seguridad desactivando la autenticación por contraseña.

Paso 1 : Editar la configuración SSH

sudo nano /etc/ssh/sshd_config

Paso 2 : Modificar los parámetros

Busca y modifica estas líneas:

# Desactivar la autenticación por contraseña
PasswordAuthentication no

# Desactivar contraseñas vacías
PermitEmptyPasswords no

# Activar la autenticación por clave pública
PubkeyAuthentication yes

# Desactivar la autenticación challenge-response
ChallengeResponseAuthentication no

# Opcional : Desactivar la conexión como root (crea un usuario sudo primero)
# PermitRootLogin no

Paso 3 : Reiniciar el servicio SSH

sudo systemctl restart sshd

⚠️ Atención : ¡Mantén abierta una sesión SSH durante las pruebas! Si la configuración es incorrecta, podrías perder el acceso.


🛠️ Gestión de Claves SSH

Agregar varias claves

Puedes autorizar varias claves (varias computadoras, varios usuarios):

nano ~/.ssh/authorized_keys

Agrega una clave por línea.

Eliminar una clave

Edita authorized_keys y elimina la línea correspondiente a la clave.

Cambiar la frase de paso de una clave existente

ssh-keygen -p -f ~/.ssh/id_ed25519

Mostrar la huella digital (fingerprint) de una clave

ssh-keygen -lf ~/.ssh/id_ed25519.pub

🔄 Convertir los Formatos de Claves

PPK a OpenSSH (PuTTY → Linux)

En PuTTYgen:

  1. Carga tu archivo .ppk con Cargar
  2. Ve a ConversionesExportar clave OpenSSH
  3. Guarda el archivo

OpenSSH a PPK (Linux → PuTTY)

En PuTTYgen:

  1. Ve a ConversionesImportar clave
  2. Selecciona tu clave privada OpenSSH (id_rsa o id_ed25519)
  3. Haz clic en Guardar clave privada

🔧 Solución de Problemas

"Permiso denegado (clave pública)"

Causas posibles :

  • Clave pública no instalada en el servidor
  • Permisos incorrectos en .ssh o authorized_keys
  • Clave privada incorrecta utilizada

Soluciones :

# Verificar los permisos (en el servidor)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# Verificar que la clave esté en authorized_keys
cat ~/.ssh/authorized_keys

"Conexión rechazada"

Causas posibles :

  • Servicio SSH no iniciado
  • Cortafuegos bloqueando el puerto 22

Soluciones :

# Verificar el estado de SSH
sudo systemctl status sshd

# Iniciar si es necesario
sudo systemctl start sshd

# Verificar el cortafuegos
sudo ufw status
sudo ufw allow 22

"Error de verificación de clave de host"

El servidor ha cambiado (reinstalación, nueva IP). Elimina la entrada antigua:

ssh-keygen -R IP_DEL_VPS

La frase de paso se solicita en cada conexión

Utiliza ssh-agent para recordar la frase de paso:

# Iniciar el agente
eval "$(ssh-agent -s)"

# Agregar la clave
ssh-add ~/.ssh/id_ed25519

📋 Resumen de Comandos

Acción Comando
Generar clave RSA 4096 ssh-keygen -t rsa -b 4096
Generar clave Ed25519 ssh-keygen -t ed25519
Copiar clave al servidor ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@IP
Mostrar clave pública cat ~/.ssh/id_ed25519.pub
Probar conexión detallada ssh -v usuario@IP
Cambiar frase de paso ssh-keygen -p -f ~/.ssh/id_ed25519
Ver huella digital ssh-keygen -lf ~/.ssh/id_ed25519.pub

📁 Estructura de Archivos SSH

~/.ssh/
├── authorized_keys      # Claves públicas autorizadas (en el servidor)
├── id_ed25519          # Clave privada Ed25519 (en el cliente)
├── id_ed25519.pub      # Clave pública Ed25519 (en el cliente)
├── id_rsa              # Clave privada RSA (en el cliente)
├── id_rsa.pub          # Clave pública RSA (en el cliente)
├── known_hosts         # Huellas de los servidores conocidos
└── config              # Configuración personalizada (opcional)

Permisos requeridos

Fichier/Dossier Permission Commande
~/.ssh/ 700 chmod 700 ~/.ssh
authorized_keys 600 chmod 600 ~/.ssh/authorized_keys
Clé privée 600 chmod 600 ~/.ssh/id_ed25519
Clé publique 644 chmod 644 ~/.ssh/id_ed25519.pub

💡 Buenas Prácticas

  1. Utilice Ed25519 para las nuevas claves (más seguro y eficiente que RSA)

  2. Siempre establezca una frase de paso en sus claves privadas

  3. Nunca comparta su clave privada - solo la clave pública debe ser copiada

  4. Haga copias de seguridad de sus claves en un lugar seguro (gestor de contraseñas, caja fuerte)

  5. Utilice claves diferentes para diferentes usos (trabajo, personal, servidores críticos)

  6. Desactive la autenticación por contraseña una vez configuradas las claves

  7. Audite regularmente el archivo authorized_keys para eliminar claves no utilizadas

  8. Cambie sus claves periódicamente (mínimo cada 1-2 años)


❓ Preguntas Frecuentes

¿Cuál es la diferencia entre RSA y Ed25519?

Aspecto RSA Ed25519
Seguridad Excelente (4096 bits) Excelente (256 bits)
Rendimiento Más lento Más rápido
Tamaño de clave Grande Pequeña
Compatibilidad Universal Muy buena (post-2014)

Recomendación: Ed25519 para nuevas implementaciones, RSA para compatibilidad con sistemas antiguos.

¿Puedo usar la misma clave en varios servidores?

Sí, puede instalar la misma clave pública en varios servidores. Sin embargo, para una seguridad óptima, utilice claves diferentes para entornos críticos.

¿Cómo agregar un comentario a mi clave?

El parámetro -C permite agregar un comentario:

ssh-keygen -t ed25519 -C "laptop-trabajo-2024"

¿Las claves SSH caducan?

No, las claves SSH no tienen una fecha de vencimiento incorporada. Depende de usted rotarlas regularmente.