GNU/Linux >> Tutoriales Linux >  >> Linux

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

Los artículos anteriores (configuración de openSSH a openSSH, configuración de SSH2 a SSH2) explican cómo configurar la autenticación basada en claves en la misma versión de ssh para realizar ssh y scp sin ingresar la contraseña. Este artículo explica cómo configurar la autenticación basada en clave SSH entre diferentes versiones de SSH (desde openSSH a SSH2) para realizar ssh y scp sin ingresar la contraseña.

1. Verifique la versión de SSH del host local y del host remoto.

En este ejemplo, el host local se ejecuta en openSSH y el host remoto se ejecuta en SSH2.

[local-host]$ ssh -V
OpenSSH_5.0p1, OpenSSL 0.9.8g 19 Oct 2007

[remote-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
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2

2. Genere un par de claves en el host local usando ssh-keygen

[local-host]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter>
Enter passphrase (empty for no passphrase): <Enter your passphrase here>
Enter same passphrase again:<Enter your passphrase again>
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
3b:2a:d2:ac:8c:71:81:7e:b7:31:21:11:b8:e8:31:ad jsmith@local-host

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

De forma predeterminada, ssh-keygen en openSSH genera un par de claves RSA. También puede generar un par de claves DSA usando:ssh-keygen -t dsa comando.

3. Convierta la clave pública openSSH en clave pública SSH2.

En el host local que ejecuta openSSH, convierta la clave pública openSSH en clave pública SSH2 usando ssh-keygen como se muestra a continuación.

[local-host]$ ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_ssh2.pub

4. Instale la clave pública en el host remoto que ejecuta SSH2.

Cree un nuevo archivo de clave pública en el host remoto y copie y pegue la clave SSH2 convertida desde el host local.

[remote-host]$ vi ~/.ssh2/local-host_ssh2_key.pub 
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted from OpenSSH by jsmith@local-host"
DDDDB3NzaC1yc2EAAAABDmbrdomPh9rWfjZ1+7Q369zsBEa7wS1RxzWRQ0Bmr9FSplI
3ADBEBC/6cbdf/v0r6Cp5y5kusP07AOzo2F7MBDSZBtS/MbYJiIxvocoaxG2bQyz3yYjU
YcpzGMD182bnA8kRxmGg+R5pVXM34lx3iSSgd8r3RzZKnDpEvEInnI7pQvUBoEbYCXPUeZ
LQvQAkz6+Pb6SsNp-dop/qgv9qyfbyMz1iKUZGadG146GtanL5QtRwyAeD187gMzzrGzMFP
LWjdzWpGILdZ5gq7wwRpbcXFUskVrS2ZjDe676XlTN1k5QSZmSYUuttDdrjB5SFiMpsre8
a7cQuMS178i9eDBEC==
---- END SSH2 PUBLIC KEY ----

Agregue el nombre del archivo de clave pública anterior al archivo de autorización en el host remoto como se muestra a continuación.

[remote-host]$ vi ~/.ssh2/authorization 
Key local-host_ssh2_key.pub

5. Verifique el inicio de sesión desde el host local al host remoto utilizando la autenticación de clave SSH2.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
The authenticity of host 'local-host' can't be established.
DSA key fingerprint is a5:f6:2e:e6:a9:b2:7b:0e:e7:ae:cb:6c:7b:f5:6d:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'local-host' (DSA) to the list of known hosts.
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <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.

6. Inicie el agente SSH en el host local

El Agente SSH se ejecutará en segundo plano para mantener las claves privadas y ejecutar ssh y scp sin tener que ingresar la frase de contraseña varias veces.

[local-host]$ ssh-agent $SHELL

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

[local-host]$ ssh-add
Enter passphrase for /home/jsmith/.ssh/id_rsa:<Enter your passphrase here>
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

8. Realice SSH o SCP a la casa remota 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>

Linux
  1. ¿Cómo usar Sftp en un sistema que requiere Sudo para acceso raíz y autenticación basada en clave Ssh?

  2. ¿Convertir clave privada Openssh en clave privada Ssh2?

  3. ¿Importar la clave Ssh como subclave Gpg para usar para la autenticación Ssh?

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

  5. Cómo realizar SSH y SCP sin contraseña de SSH2 a OpenSSH

¿Cómo configurar claves SSH – SO Windows?

Comando SSH

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

Cómo configurar el inicio de sesión sin contraseña SSH en AlmaLinux

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

Realice SSH y SCP sin ingresar la contraseña en openSSH