Introducción
El protocolo SSH habilita un canal seguro en una red insegura en una arquitectura cliente-servidor, conectando un cliente SSH con un servidor SSH. Al crear un conjunto de claves SSH, se obtienen una clave pública y una clave privada. Puede guardar la clave pública en un servidor y luego conectarse a él con un cliente que tenga la clave privada correspondiente. Si las claves SSH pública y privada coinciden, iniciará sesión sin contraseña.
Generalmente, este es el método de conexión más seguro y conveniente.
Esta guía explica cómo configurar claves SSH en su máquina local para conexiones seguras a servidores remotos.
Requisitos previos
- Acceso al panel de control de OVHcloud
- Un servidor dedicado o un VPS en su cuenta OVHcloud
- Un programa cliente SSH (línea de comandos o GUI)
- Acceso administrativo (sudo) a través de SSH a su servidor
Esta guía no aplica a instalaciones estándar de Windows Server, ya que estas utilizan el Protocolo de Escritorio Remoto (RDP) para las conexiones. Las conexiones SSH se utilizan para el modo de rescate de OVHcloud. Puede encontrar más información en la sección "Más información" de esta guía.
Creación de un par de claves SSH
Las siguientes instrucciones cubren dos métodos de uso de claves SSH:
- Creación de un par de claves Open SSH y conexión al servidor desde el cliente de línea de comandos SSH
- Creación de un par de claves PuTTY y conexión al servidor desde el cliente SSH PuTTY
Puede usar ambos métodos juntos, pero tenga en cuenta que PuTTY guarda los archivos de clave en un formato específico que los hace incompatibles con los archivos de clave SSH creados con el cliente Open SSH. Esto significa que una clave privada creada con el cliente de línea de comandos SSH debe convertirse primero al formato PuTTY, y viceversa.
Creación de un par de claves SSH desde la línea de comandos
Desde una computadora Mac o un dispositivo con un sistema operativo Linux instalado, abra la aplicación de línea de comandos (Terminal).
Comprueba que tienes una carpeta llamada .ssh en tu carpeta $HOME. Si no existe, créala:
mkdir ~/.ssh
En el sistema operativo Windows actual, abra el Símbolo del sistema escribiendo “cmd” en la barra de búsqueda (o abra PowerShell desde el menú).
Vaya al directorio .ssh de su usuario activo de Windows (por defecto: C:\Users\WindowsUsername\.ssh):
cd .sshPara generar una clave RSA de 4096 bits, utilice el siguiente comando:
ssh-keygen -b 4096
El uso de la opción -t con este comando le permite especificar un método de cifrado diferente, por ejemplo:
ssh-keygen -t ed25519 -a 256
La línea de comando le pedirá que guarde la clave recién creada en el archivo estándar:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):Puede confirmar con Intro para aceptar el nombre de archivo sugerido o introducir un nombre individual. Esto es relevante si se almacena más de un par de claves en el directorio .ssh. Puede encontrar más información al respecto en la sección "Administración de múltiples claves SSH".
Este ejemplo utiliza los nombres de archivo estándar id_rsa e id_rsa.pub.
En el siguiente mensaje, puede proteger su clave SSH con una frase de contraseña. Esto se recomienda para mayor seguridad.
El acceso remoto a su servidor es tan seguro como el dispositivo cliente que almacena la clave privada. Por lo tanto, al usar claves SSH, es fundamental proteger su dispositivo y sus archivos del acceso no autorizado.
Para mayor comodidad y seguridad, utilice un administrador de contraseñas en su dispositivo, como la solución de código abierto KeePass.
Todas las claves SSH deben almacenarse en la carpeta .ssh. Los archivos de clave pública tendrán la extensión .pub en el nombre.
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MRk+Y0zCOoOkferhkTvMpcMsYspj212lK7sEauNap user@hostname
The key's randomart image is:
+---[RSA 4096]----+
| .. o |
| . .= o |
| o o X |
|. . . . |
|. .=.o .S. |
| =o.o. . . |
|o + . . o .. |
|.. . . oEoo . |
|o. .o+oo |
+----[SHA256]-----+Para ver y exportar su clave pública, use el comando cat en su archivo pub.key. Copie la cadena de clave completa al portapapeles para agregarla a su servidor más tarde.
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8teh2NJ42qYZV98gTNhumO1b6rMYIkAfRVazl
k6dSS3xf2MXJ4YHsDacdjtJ+evXCFBy/IWgdkFtcvsGAMZ2N1RdvhDyQYcy6NDaJCBYw1K6Gv5fJ
SHCiFXvMF0MRRUSMneYlidxUJg9eDvdygny4xOdC6c1JrPrSgOc2nQuKeMpOoOWLINIswg1IIFVk
kFMPrFivP8Z6tidzVpAtbr1sXmJGZazYWrU3FoK2a1sF1zEWrmlMOzX81zEWrmlMOzX8CpZW8Rae
i4ANmLy7NULWK36yU0Rp9bFJ4o0/4PTkZiDCsK0QyHhAJXdLN7ZHpfJtHIPCnexmwIMLfIhCWhO5
user@hostnameEn la Terminal de macOS, puede usar los comandos pbcopy y pbpaste para administrar las cadenas de claves con mayor rapidez. Por ejemplo, use este comando para copiar la clave del archivo id_rsa.pub al portapapeles:
pbcopy < ~/.ssh/id_rsa.pub
En Windows, puede abrir el archivo con el Bloc de notas desde el Explorador de archivos (haga clic derecho en el archivo y seleccione Abrir con) o usar uno de los siguientes comandos (en \Users\WindowsUsername\.ssh):
comando
more id_rsa.pub
PowerShell
cat id_rsa.pub
Copie la cadena de clave completa al portapapeles para agregarla a su servidor más tarde.
Usando el portapapeles
Al trabajar desde el símbolo del sistema de Windows, haga clic derecho para pegar el contenido del portapapeles en la ventana del símbolo del sistema. Para copiar una cadena desde la ventana del símbolo del sistema, resáltela y presione Intro. También puede encontrar estas funciones haciendo clic derecho en la barra de menú.
Creación de un par de claves SSH con PuTTY
PuTTY es un software cliente SSH de código abierto con interfaz gráfica de usuario, disponible para Windows y otros sistemas operativos. Ofrece un software complementario para generar claves SSH: el Generador de Claves PuTTY (PuTTYgen).
El objetivo principal de PuTTY es gestionar las conexiones SSH desde un equipo cliente Windows a un servidor GNU/Linux. PuTTY almacena los archivos de clave en un formato específico que los hace incompatibles con los archivos de clave SSH creados con el cliente Open SSH, disponible de forma nativa en la mayoría de los sistemas operativos modernos.
Si es necesario, las claves generadas desde la línea de comandos, como se describe arriba, se pueden convertir al formato PPK para usarlas con el cliente PuTTY. Para un uso más cómodo de las claves SSH, elija una opción y manténgala (claves privadas SSH o claves privadas PuTTY).
Si aún no está instalado (revisa tu lista de programas o usa la función de búsqueda), descarga PuTTY desde el sitio web oficial. El paquete de instalación estándar recomendado incluye PuTTYgen, pero también está disponible como archivo independiente en el sitio web.
Abra PuTTYgen y seleccione un algoritmo de cifrado compatible. Este ejemplo utiliza RSA. Introduzca 4096 bits en la esquina inferior derecha y haga clic en el botón Generar.
Mueva el puntero del mouse libremente en el área debajo de la barra de progreso:
Cuando la barra de progreso esté llena, la clave estará lista.
Copie la cadena de claves completa al portapapeles para agregarla a su servidor. Guarde ambas claves como archivos haciendo clic en los botones correspondientes e introduzca una contraseña para protegerlas.
El acceso remoto a su servidor es tan seguro como el dispositivo cliente que almacena la clave privada. Por lo tanto, al usar claves SSH, es fundamental proteger su dispositivo y sus archivos del acceso no autorizado.
Para mayor comodidad y seguridad, utilice un administrador de contraseñas en su dispositivo, como la solución de código abierto KeePass.
Una de las ventajas de usar PuTTY es la posibilidad de guardar múltiples conexiones como sesiones. Encuentre más información a continuación en la sección "Administración de múltiples claves SSH en su equipo local".
Puede obtener más información sobre las conexiones SSH en nuestras guías de Primeros pasos y en nuestra Introducción a SSH.
Cómo agregar claves SSH a su servidor
Transferencia de claves públicas creadas en sistemas basados en GNU/Linux, MacOS o BSD
Si creó sus pares de claves SSH en un sistema basado en GNU/Linux, MacOS o BSD, puede usar el comando ssh-copy-id para agregar las claves públicas a su servidor.
La herramienta ssh-copy-id copia las claves públicas al archivo ~/.ssh/authorized_keys en el servidor remoto especificado, creando automáticamente el archivo en este directorio si es necesario.
ssh-copy-id user@IP_ADDRESSDe forma predeterminada, ssh-copy-id intentará mover todas las claves públicas al directorio ~/.ssh de su usuario local. Para agregar una clave pública, puede especificar este archivo de claves con la opción -i seguida de la ruta del archivo:
ssh-copy-id -i ~/.ssh/KeyFileName user@IP_ADDRESS
Ejemplo:
ssh-copy-id -i ~/.ssh/VPS_rsa.pub [email protected]
Se le solicitará la contraseña de usuario. Si el proceso se completa correctamente, recibirá un mensaje similar a la imagen de abajo.
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'user@server-ip'"
and check to make sure that only the key(s) you wanted were added.Si recibes un mensaje de error, siempre puedes agregar tus claves públicas manualmente siguiendo los pasos que se explican a continuación.
Como práctica recomendada y por razones de seguridad, no se debe usar el mismo par de claves por varios usuarios. Dado que cada usuario en sistemas GNU/Linux tiene su propio archivo de claves autorizadas en ~/.ssh/, puede usar el comando ssh-copy-id como se muestra arriba y comparar KeyFileName con el usuario después de crear el par de claves.
Agregar claves públicas al servidor manualmente
Conéctese a su servidor y asegúrese de estar en el directorio $HOME de su usuario. Cree la carpeta .ssh (si no existe):
mkdir ~/.ssh
Para almacenar la clave del usuario actual, abra (o cree) el archivo authorized_keys con su editor de texto favorito (en este ejemplo se utiliza nano):
nano ~/.ssh/authorized_keys
Coloque su clave pública en este archivo. Guarde el archivo y salga del editor. Reinicie el servidor (sudo reboot) o simplemente reinicie el servicio OpenSSH con uno de los siguientes comandos (el comando apropiado puede variar según el sistema operativo):
sudo systemctl restart ssh
sudo systemctl restart sshd
Para asegurar que su clave esté configurada correctamente, conéctese a su servidor con el siguiente comando. Reemplace "usuario" por el nombre de usuario para el que se crearon las claves y "DIRECCIÓN_IP" por la dirección IP (o nombre de host) del servidor al que desea acceder:
ssh user@IP_ADDRESS
Ejemplo:
Agregar claves públicas adicionales a su servidor
Para agregar claves SSH para otros usuarios que tendrán acceso a su servidor, repita los pasos de creación de claves, pero use la carpeta $HOME correspondiente o el directorio Usuarios de Windows del usuario deseado para crear y almacenar claves SSH (o ejecute comandos en su equipo dedicado). A continuación, agregue la nueva clave pública al servidor como se describe anteriormente en el archivo authorized_keys.
Eliminar claves públicas de su servidor
Abra el archivo authorized_keys como se describe arriba y elimine la cadena de clave del usuario cuyo acceso ha sido revocado.
Guarde el archivo y salga del editor.
Administrar múltiples claves SSH en su máquina local
Quizás quieras usar varios pares de claves SSH para conectarte a diferentes hosts remotos. (Si usas PuTTY, ve a la sección correspondiente a continuación).
Dado que todas las claves deben guardarse en la carpeta .ssh de su equipo local, los nombres de archivo deben ser diferentes. Al crear un nuevo par de claves y se le solicita un nombre de archivo, introduzca uno de su elección. Por ejemplo, que coincida con el nombre de su servidor.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): KeyFileName_rsa
Your identification has been saved in /home/user/.ssh/KeyFileName_rsa.
Your public key has been saved in /home/user/.ssh/KeyFileName_rsa.pub.Al conectarse al servidor correspondiente, además de los detalles del usuario y del servidor, especifique el nombre del archivo de clave:
ssh -i ~/.ssh/KeyFileName user@IP_ADDRESS
Ejemplo:
ssh -i ~/.ssh/myVPS_rsa [email protected]
Como se mencionó en las secciones anteriores, las mismas instrucciones funcionan en el cliente de Windows. Simplemente reemplace ~/ con la ruta a su carpeta de usuario de Windows, que por defecto es C:\Users\WindowsUsername\. (Ejemplo: ssh -i C:\Users\Username\.ssh/myVPS_rsa [email protected])
Usando el archivo “config”.
Una alternativa a añadir la opción -i cada vez que editas un archivo llamado config dentro de la carpeta ~/.ssh (\Users\Username\.ssh para Windows). Puedes usarla para configurar detalles de diferentes conexiones (nombre de usuario, puerto, archivo de clave, parámetros opcionales, etc.).
Si este archivo existe dentro de .ssh, probablemente ya contenga información. Dependiendo de su entorno, primero cree una copia de seguridad del original.
Ejemplo del contenido de la carpeta .ssh:
ls ~/.ssh/
config id_rsa id_rsa.pub known_hosts known_hosts.old
Con el archivo de configuración, se pueden almacenar múltiples conexiones SSH junto con sus parámetros individuales, además de los valores estándar. Aprovechar al máximo este archivo puede ser complicado, ya que resulta muy útil para usuarios experimentados que administran varios servidores con frecuencia.
A continuación se muestra un ejemplo sencillo para explicar cómo configurar una conexión SSH a un VPS.
Abra el archivo y agregue las siguientes líneas en la parte superior:
Host vps
HostName 203.0.113.100
IdentityFile ~/.ssh/myVPS_rsaLuego podrás conectarte al VPS con el alias que hayas definido como Host:
ssh ubuntu@vps
En el ejemplo anterior solo se especificaron la IP del servidor y el archivo de claves, pero se pueden añadir más detalles. Para configurar una conexión SSH al segundo servidor con el nombre de usuario "rocky", el puerto SSH modificado "49160" y la clave privada en el archivo "myserver_rsa", expanda el contenido del archivo como se muestra en este ejemplo:
Host vps
HostName 203.0.113.100
IdentityFile ~/.ssh/myVPS_rsa
Host dedicated_server
HostName 203.0.113.101
User rocky
Port 49160
IdentityFile ~/.ssh/myserver_rsaLuego puedes conectarte a este servidor ingresando lo siguiente:
ssh dedicated_serverPara obtener más información, puede leer la página del manual correspondiente.
Usando PuTTY
Si siguió las instrucciones de la sección Crear un par de claves SSH con PuTTY y agregar claves SSH a su servidor, tendrá un par de claves que puede usar para conectarse a su servidor.
PuTTY puede almacenar las credenciales y parámetros de una conexión SSH como una sesión. Esto también permite conectarse a diferentes servidores usando claves independientes.
Abra PuTTY y expanda la subsección SSH en el menú de la izquierda, luego haga clic en Autenticación y credenciales.
Haga clic en el botón Explorar y seleccione el archivo de clave privada PuTTY (keyfile.ppk) de la carpeta donde lo guardó.
El archivo de claves ya está asociado a la sesión SSH actual. Vaya a Sesión en el menú de la izquierda e introduzca sus credenciales de inicio de sesión para el servidor (nombre de usuario @ dirección IPv4).
Ingrese un nombre para esta conexión en el campo Sesiones guardadas y haga clic en Guardar para agregarla a la lista.
A partir de ahora, puede hacer clic en este elemento de sesión y abrir una conexión con su servidor. Haga clic en "Abrir" para probarlo. Si ha protegido el archivo de clave con una contraseña, deberá introducirla en este punto.
Para configurar otra conexión de servidor, repita los pasos:
- Crear el par de claves.
- Añade la clave pública a tu servidor.
- Ingrese los detalles del servidor y agregue el archivo de clave en PuTTY.














