GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo generar y configurar claves SSH en CentOS 7

Introducción

Concha segura (SSH ) es un protocolo cifrado que utilizan los usuarios de Linux para conectarse a sus servidores remotos.

Generalmente, hay dos formas para que los clientes accedan a sus servidores:mediante autenticación basada en contraseña o autenticación basada en clave pública.

Se recomienda encarecidamente el uso de claves SSH para la autenticación, ya que es una alternativa más segura a las contraseñas.

Este tutorial lo guiará a través de los pasos sobre cómo generar y configurar claves SSH en CentOS 7. También cubrimos la conexión a un servidor remoto usando las claves y la desactivación de la autenticación de contraseña .

Antes de empezar

1. Verifique las claves existentes

Antes de cualquier instalación, es aconsejable verificar si hay claves existentes en las máquinas cliente.

Abra la terminal y enumere todas las claves públicas almacenadas con el siguiente comando:

ls -l ~/.ssh/id_*.pub

La salida le informa sobre las claves generadas actualmente en el sistema. Si no hay ninguno, el mensaje le dice que no puede acceder a /.ssh/id_*.pub , ya que no existe tal archivo o directorio.

2. Verifique que SSH esté instalado

Para verificar si el paquete thw está instalado, ejecute el comando:

ssh -V

Si ya tiene SSH, la salida le indica qué versión se está ejecutando. Actualmente, la última versión es OpenSSH 8.0/8.0p1 .

Pasos para crear claves SSH en CentOS

Paso 1:crear un par de claves SSH

1. Comience iniciando sesión en la máquina de origen (servidor local) y cree un par de claves RSA de 2048 bits usando el comando:

ssh-keygen -t rsa

Si desea reforzar las medidas de seguridad, puede crear una clave de 4096 bits agregando el indicador -b 4096:

ssh-keygen -t rsa -b 4096

2. Después de ingresar el comando, debería ver el siguiente mensaje:

Generating public/private rsa key pair.
Enter file in which to save the key (home/your_username/.ssh/id_rsa):

3. Para guardar el archivo en el directorio sugerido, presione Enter . Alternativamente, puede especificar otra ubicación.

4. A continuación, el aviso continuará con:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Aunque crear una frase de contraseña no es obligatorio, es muy recomendable.

5. Finalmente, la salida terminará especificando la siguiente información:

Your identification has been saved in home/your_username/.ssh/id_rsa.
Your public key has been saved in home/your_username/.ssh/id_rsa.pub.
The key fingerprint is:
KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk
[email protected]
The key's randomart image is:
+------[RSA 3072]-------+
|       .oo.            |
|        +o+.           |
|      + +.+            |
| o  +          S .     |
|      .    E  .   . =.o|
|    .  +       .   [email protected]|
|        +   .     oo*=O|
|   oo            . .+o+|
|                 o=ooo=|
+------ [SHA256] ------+

Ahora debe agregar la clave pública al servidor CentOS remoto.

Paso 2:Copie la clave pública al servidor CentOS

Puede copiar la clave SSH pública en el servidor remoto usando varios métodos diferentes:

  1. utilizando el script ssh-copy-id
  2. utilizando copia segura (scp)
  3. copiar manualmente la clave

El método más rápido y sencillo es utilizar ssh-copy-id . Si la opción está disponible, recomendamos usarla. De lo contrario, pruebe con cualquiera de los otros dos indicados.

Copiar clave pública usando ssh-copy-id

1. Comience escribiendo el siguiente comando, especificando la cuenta de usuario SSH y la dirección IP del host remoto:

ssh-copy-id [email protected]_host

Si es la primera vez que su computadora local accede a este servidor remoto específico, recibirá el siguiente resultado:

The authenticity of host '104.0.316.1 (104.0.316.1)' can't be established.
ECDSA key fingerprint is KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk.
Are you sure you want to continue connecting (yes/no)? yes

2. Confirme la conexión:escriba y pulsa Intro .

3. Una vez que localice la clave id_rsa.pub key creado en la máquina local, le pedirá que proporcione la contraseña para la cuenta remota. Escriba la contraseña y pulse Intro .

4. Una vez establecida la conexión, añade la clave pública en el servidor remoto. Esto se hace copiando el ~/.ssh/id_rsa.pub archivo al ~/.ssh del servidor remoto directorio. Puede ubicarlo bajo el nombre authorized_keys .

5. Por último, la salida le indica la cantidad de claves agregadas, junto con instrucciones claras sobre qué hacer a continuación:

Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Copiar clave pública mediante copia segura

1. Primero, configure una conexión SSH con el usuario remoto:

ssh [email protected]_host

2. A continuación, cree el ~/.ssh directorio así como las authorized_keys archivo:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

3. Usa el chmod comando para cambiar el permiso del archivo:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

chmod 700 hace que el archivo sea ejecutable , mientras que chmod 600 permite al usuario leer y escribir el archivo.

4. Ahora, abra una nueva sesión de terminal, en la computadora local.

5. Copie el contenido de id_rsa.pub key (la clave pública SSH) a las authorized_keys creadas previamente archivo en el servidor CentOS remoto escribiendo el comando:

scp ~/.ssh/id_rsa.pub [email protected]_host:~/.ssh/authorized_keys

Con esto, la clave pública se ha almacenado de forma segura en la cuenta remota.

Copiar clave pública manualmente

1. Para agregar manualmente la clave SSH pública a la máquina remota, primero debe abrir el contenido desde ~/.ssh/id_rsa.pub archivo:

cat ~/.ssh/id_rsa.pub

2. Como en la imagen a continuación, la clave comienza con ssh-rsa y termina con el nombre de usuario de la computadora local y el nombre de host de la máquina remota:


3. Copie el contenido del archivo, ya que lo necesitará más adelante.

4. Luego, en la ventana de la terminal, conéctese al servidor remoto en el que desea copiar la clave pública. Utilice el siguiente comando para establecer la conexión:

ssh [email protected]_host

5. Cree un directorio ~/.ssh y claves_autorizadas archivo en el servidor CentOS con el siguiente comando:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

6. Cambie su permiso de archivo escribiendo:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

7. A continuación, abra authorized_keys archivo con un editor de su preferencia. Por ejemplo, para abrirlo con Nano, escriba:

nano authorized_keys

8. Agrega la clave pública, previamente copiada en el paso 2 de esta sección, en una nueva línea en (debajo del contenido existente).

9. Guarde los cambios y cierre el archivo.

10. Finalmente, inicie sesión en el servidor para verificar que todo esté configurado correctamente.

Paso 3:Conéctese al servidor remoto mediante claves SSH

Una vez que haya completado los pasos anteriores (crear un par de claves RSA y copiar la clave pública en el servidor CentOS), podrá conectarse al host remoto sin escribir la contraseña de la cuenta remota.

Todo lo que necesita hacer es escribir el siguiente comando:

ssh [email protected]_host

Si no especificó una frase de contraseña al crear el par de claves SSH, iniciará sesión automáticamente en el servidor remoto.

De lo contrario, escriba la frase de contraseña que proporcionó en los pasos iniciales y presione Intro. .

Una vez que el shell confirme la coincidencia de clave, abrirá una nueva sesión para la comunicación directa con el servidor.

Paso 4:deshabilite la autenticación de contraseña

Aunque logró acceder al servidor CentOS sin tener que proporcionar una contraseña, todavía tiene un sistema de autenticación basado en contraseña ejecutándose en la máquina. Esto lo convierte en un objetivo potencial para los ataques de fuerza bruta.

Debe deshabilitar la autenticación de contraseña por completo siguiendo los pasos descritos.

1. Con las claves SSH, inicie sesión en el servidor CentOS remoto que tiene privilegios administrativos:

ssh [email protected]_host

2. A continuación, abra el archivo de configuración del demonio SSH utilizando un editor de texto de su elección:

sudo nano /etc/ssh/sshd_config

3. Busque la siguiente línea en el archivo:

PasswordAuthentication yes

4. Edite la configuración cambiando yes valor a no . Por lo tanto, la directiva debería ser la siguiente:

PasswordAuthentication no

5. Guarde el archivo y salga del editor de texto.
6. Para habilitar los cambios, reinicie el sshd servicio usando el comando:

sudo systemctl restart sshd.service

7. Verifique que la conexión SSH al servidor aún funcione correctamente. Abra una nueva ventana de terminal y escriba el comando:

ssh [email protected]_host

Cent OS
  1. Cómo configurar claves SSH

  2. Configurar claves SSH en CentOS 7:¿proceso paso a paso?

  3. Cómo configurar claves SSH en CentOS 8

  4. Cómo configurar claves SSH en Ubuntu 16.04

  5. Cómo configurar claves SSH en Ubuntu 18.04

Cómo configurar claves SSH en Debian 9

Cómo configurar claves SSH en Debian 10

¿Cómo configurar claves SSH – SO Windows?

Cómo generar una clave SSH en CentOS 8

Cómo configurar la clave SSH en un servidor Plesk

Cómo configurar claves SSH en Debian 11 Linux