GNU/Linux >> Tutoriales Linux >  >> Linux

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

En este artículo, explicaré cómo realizar ssh y scp sin ingresar la contraseña usando la autenticación de clave pública SSH con SSH Agent en openSSH

Hay dos niveles de seguridad en la autenticación basada en clave SSH. Para iniciar sesión, necesita tanto la clave privada como la frase de contraseña. Incluso si uno de ellos está comprometido, el atacante aún no puede iniciar sesión en su cuenta, ya que ambos son necesarios para iniciar sesión. Esto es mucho mejor que la típica autenticación basada en contraseña, donde si la contraseña se ve comprometida, el atacante puede obtener acceso al sistema.

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.
  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.

Los siguientes 8 pasos explican cómo realizar SSH y SCP desde el host local a un host remoto sin ingresar la contraseña en el sistema openSSH

1. Verifique que el host local y el host remoto estén ejecutando openSSH

[local-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

[remote-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

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:
31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 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. Instale la clave pública en el host remoto.

Copie el contenido de la clave pública del host local y péguelo en /home/jsmith/.ssh/authorized_keys en el host remoto. Si /home/jsmith/.ssh/authorized_keys ya tiene otra clave pública, puede agregarla al final. Si el directorio .ssh en su directorio de inicio en el host remoto no existe, créelo.

[remote-host]$ vi ~/.ssh/authorized_keys 
ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR jsmith@local-host

En palabras simples, copie el servidor local:/home/jsmith/.ssh/id_rsa.pub en el servidor remoto:/home/jsmith/.ssh/authorized_keys

4. Otorgue el permiso apropiado al directorio .ssh en el host remoto.

[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys

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

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

[local-host]$ ssh -l jsmith remote-host
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <Enter your passphrase here>
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail. [remote-host]$ <You are on remote-host here>

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

Verifique si el agente SSH ya se está ejecutando; si no, inícielo como se muestra a continuación.

[local-host]$ ps -ef | grep ssh-agent
511 9789 9425 0 00:05 pts/1 00:00:00 grep ssh-agent

[local-host]$ ssh-agent $SHELL

[local-host]$ ps -ef | grep ssh-agent
511 9791 9790 0 00:05 ? 00:00:00 ssh-agent /bin/bash
511 9793 9790 0 00:05 pts/1 00:00:00 grep ssh-agent

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)

Las siguientes son las diferentes opciones disponibles en el ssh-add:

  • ssh-add :carga un archivo de clave específico.
  • ssh-add -l:enumera todas las claves cargadas en el agente ssh.
  • ssh-add -d :elimina una clave específica del agente ssh
  • ssh-add -D:Eliminar todas las claves

8. 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>

Ayúdame a difundir las noticias sobre The Geek Stuff.

Por favor, deje sus comentarios y opiniones sobre este artículo. Si te gusta esta publicación, te agradecería mucho si puedes difundir el blog "The Geek Stuff" agregándolo a del.icio.us o Digg a través del enlace a continuación.


Linux
  1. Inicio de sesión SSH en el servidor RHEL 7 sin contraseña

  2. 3 pasos para realizar el inicio de sesión SSH sin contraseña usando ssh-keygen y ssh-copy-id

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

  4. Cómo ejecutar SSH y SCP en modo por lotes (solo cuando está habilitado el inicio de sesión sin contraseña)

  5. ¿Cómo puedo realizar un `git pull` sin volver a ingresar mi contraseña de SSH?

Cómo configurar la clave pública y privada SSH en Linux

Instalar y usar WinSCP

Cómo copiar archivos de forma remota a través de SSH sin ingresar una contraseña

Consejos de Ubuntu:cómo iniciar sesión sin ingresar el nombre de usuario y la contraseña

TigerVNC + SSH sin contraseña de VNC?

El inicio de sesión SSH no funciona con una clave ¿Sin contraseña?