¿Cómo intercambiar la clave SSH para la autenticación sin contraseña entre servidores Linux?

Implemente la autenticación basada en claves SSH en Linux


SSH (Secured Shell) es un protocolo que crea una conexión segura criptográfica entre el cliente SSH y los servidores remotos.

Con SSH, puede administrar y administrar servidores remotos de forma segura. Esto puede ser útil de muchas maneras..

  • Implementación multiservidor
  • Detener / iniciar servicios de forma remota
  • Automatización

y toda tu creatividad (con suerte) …

Como administrador de sistemas, esto es algo básico para saber.

Aprendamos cómo …

Generaré una clave privada y una clave pública. La clave privada debe almacenarse en su máquina cliente ssh y debe mantenerse segura. La clave pública debe copiarse en el servidor remoto para iniciar sesión en ese servidor desde la máquina cliente SSH sin necesidad de contraseña.

Aprenderás lo siguiente.

  • Instale SSH (no es necesario si ya está instalado)
  • Generar claves SSH
  • Copiar clave SSH a un servidor remoto
  • Inicie sesión en el servidor remoto utilizando SSH

Para fines de demostración, tengo 2 servidores con las siguientes direcciones IP, un sistema es un cliente y el otro es un servidor en el que iniciaré sesión a través de ssh desde una máquina cliente.

  • Cliente (usuario -> geekflare): 192.168.56.102
  • Remoto (usuario -> ubuntu): 192.168.56.101

Instalar SSH

Antes de seguir los pasos mencionados en este artículo, asegúrese de que openssh-server esté instalado en los servidores. Si no está instalado, ejecute los siguientes comandos para instalar.

sudo apt-get install openssh-server

sudo systemctl habilitar ssh

sudo systemctl start ssh

Puede ejecutar el comando ssh para verificar si está instalado en el sistema o no.

[correo electrónico protegido]: ~ $ ssh

uso: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b dirección_bind] [-c cipher_spec] [-D [bind_address:] puerto]

[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

[-i archivo_identidad] [-J [[correo electrónico protegido]] host [: puerto]] [-L dirección]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o opción] [-p puerto]

[-Q query_option] [-R dirección] [-S ctl_path] [-W host: puerto]

[-w local_tun [: remote_tun]] destino [comando]

Generar claves SSH

Esto debe hacerse en un servidor cliente.

Ejecute el comando ssh-keygen para generar una clave SSH. Simplemente presione Intro cuando solicite el archivo, la frase de contraseña, la misma frase de contraseña. Genera un par de claves en el directorio ~ / .ssh de forma predeterminada. Id_rsa es la clave privada e id_rsa.pub es la clave pública asociada.

[correo electrónico protegido]: ~ $ ssh-keygen

Generando pares de claves rsa públicas / privadas.

Introduzca el archivo en el que guardará la clave (/home/geekflare/.ssh/id_rsa):

Ingrese la frase de contraseña (vacía para ninguna frase de contraseña):

Ingrese la misma frase de contraseña nuevamente:

Su identificación se ha guardado en /home/geekflare/.ssh/id_rsa.

Su clave pública se ha guardado en /home/geekflare/.ssh/id_rsa.pub.

La huella digital clave es:

SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [correo electrónico protegido]

La imagen randomart de la clave es:

+—[RSA 2048]—-+

| o + .. |

| + o + |

| oo. . . o |

| .. *. * |

El | B. S. o. El |

El | O o. . . … |

| + @ o o. E =. o |

El | B + o + .o. =. El |

El | + … o. oo + |

+—-[SHA256]—–+

Generará dos nuevos archivos en el directorio ~ / .ssh.

Copiar clave SSH al servidor remoto

La clave privada debe copiarse en la carpeta ~ / .ssh en un servidor remoto. La mayoría de los servidores ya deberían tener esta carpeta, de lo contrario, debe crear una carpeta.

Y, para hacerlo:

  • Inicie sesión en el servidor remoto con el usuario al que desea conectarse. En mi caso, es ubuntu
  • Asegúrese de que el directorio de trabajo actual sea el directorio de inicio del usuario y luego cree una carpeta .ssh. También puede usar el siguiente comando único para crear uno

mkdir -p ~ / .ssh

Si ya tiene la carpeta .ssh, realice una copia de seguridad.

A continuación, empujemos la clave pública desde un servidor cliente.

En la máquina cliente (192.168.56.102), ejecute el siguiente comando para copiar la clave pública en el servidor remoto dentro de un archivo autorizado_keys en el directorio .ssh.

[correo electrónico protegido]: ~ $ cat .ssh / id_rsa.pub | ssh [correo electrónico protegido] ‘gato >> .ssh / Authorized_keys ‘

[correo electrónico protegido]contraseña de

Ejecute el siguiente comando para establecer permisos en el archivo autorizado_claves en el servidor remoto.

[correo electrónico protegido]: ~ $ ssh [correo electrónico protegido] "chmod 700 .ssh; chmod 640 .ssh / autorizado_claves"

Genial, esto concluye que la clave se intercambia y el permiso está configurado.

Inicie sesión en el servidor remoto utilizando SSH

Probemos para ver si funciona!

Iniciemos sesión en el servidor remoto (192.168.56.101) desde una máquina cliente (192.168.56.102) como usuario geekflare.

Ejecute el siguiente comando para probar, esta vez no le pedirá contraseña.

[correo electrónico protegido]: ~ $ ssh [correo electrónico protegido]

Bienvenido a Ubuntu 16.04.6 LTS (GNU / Linux 4.4.0-151-generic i686)

* Documentación: https://help.ubuntu.com

* Gestión: https://landscape.canonical.com

* Soporte: https://ubuntu.com/advantage

346 paquetes pueden ser actualizados.

11 actualizaciones son actualizaciones de seguridad.

Último inicio de sesión: Lun Jun 17 00:10:32 2019 desde 192.168.56.101

Aqui tienes…

He iniciado sesión en el servidor remoto con éxito. Ejecutar el siguiente comando dará los detalles de IP de la máquina remota.

[correo electrónico protegido]: ~ $ ifconfig

enp0s3 Encapsulado de enlace: Ethernet HWaddr 08: 00: 27: 9b: 47: 86

inet addr: 10.0.2.15 Bcast: 10.0.2.255 Máscara: 255.255.255.0

inet6 addr: fe80 :: 5c62: 3267: b752: fe5d / 64 Alcance: Enlace

UP BROADCAST RUNNING MULTICAST MTU: 1500 Métrica: 1

Paquetes RX: 20239 errores: 0 descartados: 0 desbordamientos: 0 trama: 0

Paquetes TX: errores 5406: 0 descartados: 0 desbordamientos: 0 operador: 0

colisiones: 0 txqueuelen: 1000

RX bytes: 22678039 (22,6 MB) TX bytes: 701710 (701,7 KB)

enp0s8 Enlace de encapsulado: Ethernet HWaddr 08: 00: 27: a9: 4a: 6b

inet addr: 192.168.56.101 Bcast: 192.168.56.255 Máscara: 255.255.255.0

inet6 addr: fe80 :: 54a9: 761c: 9034: 21a2 / 64 Alcance: Enlace

UP BROADCAST RUNNING MULTICAST MTU: 1500 Métrica: 1

Paquetes RX: 330 errores: 0 descartados: 0 desbordamientos: 0 trama: 0

Paquetes TX: 197 errores: 0 descartados: 0 desbordamientos: 0 operador: 0

colisiones: 0 txqueuelen: 1000

RX bytes: 42847 (42.8 KB) TX bytes: 32774 (32.7 KB)

lo Link encap: Loopback local

inet addr: 127.0.0.1 Máscara: 255.0.0.0

inet6 addr: :: 1/128 Ámbito: Host

UP LOOPBACK MTU EN EJECUCIÓN: 65536 Métrica: 1

Paquetes RX: 997 errores: 0 descartados: 0 desbordamientos: 0 trama: 0

Paquetes TX: 997 errores: 0 descartados: 0 desbordamientos: 0 operador: 0

colisiones: 0 txqueuelen: 1

RX bytes: 79654 (79,6 KB) TX bytes: 79654 (79,6 KB)

Conclusión

Configurar el intercambio de claves SSH es muy sencillo, como puede ver. Espero que esto te ayude y estés interesado en aprender la administración de Linux y la solución de problemas, entonces mira esto Curso Udemy.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map