GNU/Linux >> Tutoriales Linux >  >> Linux

Guía completa para la configuración de autenticación basada en clave SSH2

Anteriormente expliqué cómo realizar SSH y SCP sin ingresar la contraseña en openSSH. En este artículo, explicaré cómo configurar la autenticación basada en clave en SSH2 y realice SSH/SCP sin ingresar la contraseña usando los siguientes 10 pasos.
1. Verifique que el host local y el host remoto estén ejecutando SSH2. Tenga en cuenta que ssh y scp son un enlace simbólico a ssh2 y scp2 respectivamente, como se muestra a continuación.

[local-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[local-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

[remote-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[remote-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu


2. Genere un par de claves en el host local usando ssh-keygen2. Por lo general, ssh-keygen será un enlace suave a ssh-keygen2 como se muestra a continuación.

[local-host]$ ls -l /usr/local/bin/ssh-keygen
lrwxrwxrwx  1 root root 11 Mar 10 22:04 /usr/local/bin/ssh-keygen -> ssh-keygen2

[local-host]$ ssh-keygen
Generating 2048-bit dsa key pair
2 oOo.oOo.oOo.
Key generated.
2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700
Passphrase :<Enter the passphrase>
Again      :
Private key saved to /home/jsmith/.ssh2/id_dsa_2048_b
Public key saved to /home/jsmith/.ssh2/id_dsa_2048_b.pub

La clave pública y la clave privada se almacenan en la carpeta .ssh2 en su directorio de inicio. En este ejemplo, se encuentra en /home/jsmith/.ssh2. No debe compartir la clave privada con nadie.

De forma predeterminada, ssh-keygen2 genera un par de claves DSA. También puede generar un par de claves RSA usando:ssh-keygen -t rsa comando.
3. Dando el permiso adecuado al directorio .ssh2 como se muestra a continuación.

[local-host]$ chmod 755 ~/.ssh2/
[local-host]$ chmod 644 ~/.ssh2/id_dsa_2048_b.pub
[local-host]$ chmod 644 ~/.ssh2/authorization

4. Identifique la clave privada en la máquina cliente. En el host local, agregue la clave privada al archivo de identificación SSH2 como se muestra a continuación. Si el archivo de identificación no está presente, cree un nuevo archivo. Si el archivo está presente, agregue el nombre del archivo de la clave privada que se genera a partir del paso anterior al archivo de identificación en el "IdKey {private-key file-name} ” como se muestra a continuación.

[local-host]$ cat /home/jsmith/.ssh2/identification
IdKey id_dsa_2048_a
IdKey id_dsa_2048_b

5. Copie la clave pública en el host remoto.

Copie el archivo /home/jsmith/.ssh2/id_dsa_2048_b.pub del host local al host remoto /home/jsmith/.ssh2/id_dsa_2048_b.pub. Puede realizar un vi /home/jsmith/.ssh2/id_dsa_2048_b.pub en el host remoto y copiar el contenido de la clave pública del host local.

[remote-host]$ cat /home/jsmith/.ssh2/id_dsa_2048_b.pub
---- BEGIN SSH2 PUBLIC KEY ----
Subject: jsmith
Comment: "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:\
20 -0700"
BCDEB3NzaC1kc3MAAAEBAMNH6MnHGNzNcuXWuQrGljZsObQq5SknOpLOreXq2GVeSIspX0
S1q7W63VGVDBD9ZVvZzg3UhzsPp6m/WPS53QAxlpQvTLCepipl1LILeOZRnYw+xXzEGgqa
HggXhTy7Z1BMtB1dSlXT2Q1gdvRkvZ0hmlMXH0ktj7U81lKEkzYj8E/E1PZIJsBHAXbYms
q7ftNTd7Gf1mSfbWIG7NIyOZ4i2qSZpQayuvB3MFQXy8lz25NGVq18zoFV4THtzV6ABvHL
IJXEObZUgdUXJXQg49oeXvE6tyaqSUU7tUbp06ZgI/BcFGmbk9FDoC5gy30S5RBPpAJ5II
vsfksnJRt+8R0AAAAVAJcTY6u2Em0Eo5I7X6yL1W+Di+rpAAABAELiJqtn2flgjA926TQk

3af14zSGFHut5kZjsMKUf+3Jj3p5MTiWVglgwWYLXcrG258l5GVPzdgF2d7Z9Bu1RUsdBo
rU5LURvF1cZqC5V+9PD6hlH1iYuULUIbAaIfH6SXuk2KwQ/pEh1Q+lXUj6cCfLwe+yLcvZ
YKLGdi2MvurUKmVRik3RpaB9wcuKbLjkp1rFZGr9skDAc2hYfpM0uF+6UEz6LXWKIvLJeO
Iro6VL3MkJTxXb/Xu5/77TrT+Iz8+5cbALM3EdBOlJa1HcpPXnSKakB3Wo/Ljzf41GZPc/
Y6u09soNsnAHdv9y9gMhj1054sPwNCEJAy4eaWWsqkMAAAEBAL6eolWH4AGuB2/lPu79B0
ufgaU6BQfxED7rItf/lDhtsfHl77u6URxwQzvSV2CNJJ17WkdQoJmGfTVoSduNXOAgkQJU
woB1ALzUfugbzLVxMXWUlmoQjvyoo4G9LMDdyP5qCbFXKsqkpY16N9xcUap5PgmcoF+dCv
+hTjcC6f8j+BOy7zHYfyBnPGgSjKph9gjHyBEZiujPNkNmDXM+Mz7YeEd5HCtt1p55SBv6
wyePMAjf40ty7xcakj0Gk8c52W5yFwQjJw5EvruYW2s/1eNDXIY1IJOQKlUgOEQfon99a/
8NO0BWLNiSCNdr3uHFkr68jeusASRWWvfxYU6uZ9c=
---- END SSH2 PUBLIC KEY ----

6. Crear un archivo de autorización en el host remoto Como se muestra abajo. Este archivo de autorización debe contener el nombre de la clave pública que se copió del host local al host remoto, como se mencionó en el paso anterior. Tenga en cuenta que el formato de este archivo es "Clave {public-key file-name} “.

[remote-host]$ cat /home/jsmith/.ssh2/authorization
Key id_dsa_2048_b.pub

7. Inicie sesión desde el host local al host remoto utilizando la clave de autenticación SSH2 para verificar si funciona correctamente.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_b" with comment "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700": <Enter your passphrase here>
Last login: Sat Jun 21 2008 23:13:00 -0700 from 192.168.1.102
No mail.
[remote-host]$ <You are on remote-host here>

Hay dos formas de realizar ssh y scp sin ingresar la contraseña:

  1. Sin contraseña. Al crear un par de claves, deje la frase de contraseña vacía. Utilice esta opción para el procesamiento por lotes automatizado. por ej. si está ejecutando un trabajo cron para copiar archivos entre máquinas, esta es una opción adecuada. Puede omitir los siguientes pasos para este método.
  2. Usar frase de contraseña y agente SSH. Si está utilizando ssh y scp de forma interactiva desde la línea de comandos y no desea utilizar la contraseña cada vez que ejecuta ssh o scp, no recomiendo la opción anterior (sin frase de contraseña), ya que ha eliminado un nivel de seguridad en la autenticación basada en clave ssh. En su lugar, use la frase de contraseña mientras crea el par de claves y use SSH Agent para realizar ssh y scp sin tener que ingresar la contraseña cada vez, como se explica en los pasos a continuación.

8. Inicie el Agente SSH en el host local para ejecutar ssh y scp sin tener que ingresar la frase de contraseña varias veces.

[local-host]$ ssh-agent $SHELL

9. Cargue la clave privada en el agente SSH en el host local.

[local-host]$ ssh-add
Adding identity: /home/jsmith/.ssh2/id_dsa_2048_b.pub
Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_b (2048-bit dsa, jsmith@local-host, Sat Jun 22 2008 23:10:20 -0700).
Enter passphrase: <Enter your passphrase here>

10. Realice SSH o SCP en el hogar remoto desde el host local sin ingresar la contraseña.

[local-host]$<You are on local-host here>

[local-host]$ ssh -l jsmith remote-host
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail.
<ssh did not ask for passphrase this time>
[remote-host]$ <You are on remote-host here>

Por favor, deje sus comentarios y opiniones sobre este artículo. Si te gusta esta publicación, te agradecería mucho que te suscribieras a The Geek Stuff.


Linux
  1. Introducción a la virtualización:una guía completa para principiantes

  2. Cómo configurar las claves SSH para el inicio de sesión ssh "sin contraseña" en Linux

  3. Cómo configurar claves SSH para inicio de sesión SSH "sin contraseña" en CentOS/RHEL

  4. Cómo configurar claves SSH para SSH "clave pública/privada" Iniciar sesión en Linux

  5. ¿Permisos para la clave SSL?

Cómo configurar la autenticación multifactor para SSH en Linux

¿Cómo configurar la autenticación basada en clave Ssh para Github usando el archivo ~/.ssh/config?

¿Cómo configurar la autenticación de dos factores para WHM?

Fácil guía de configuración de FileZilla para cPanel

Configuración de autenticación basada en clave SSH de openSSH a SSH2

Guía de Midnight Commander (mc):potente administrador de archivos basado en texto para Unix