LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

En este artículo, voy a explicar cómo realizar ssh y scp sin introducir la contraseña utilizando la autenticación de clave pública SSH con el agente SSH en OpenSSH

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

Por favor, lee la actualización de éste artículo en éste enlace.

 Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id

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

Sin palabra en la contraseña. Durante la creación de par de claves, deje la contraseña vacía. Utilice esta opción para el procesamiento por lotes automatizado. por ejemplo, si está ejecutando una tarea de cron para copiar archivos entre máquinas esta es la opción más adecuada (no la recomendada).

Usar contraseña y SSH Agent. Si está usando ssh y scp interactiva desde la línea de comandos y no desea utilizar la contraseña cada vez que realice ssh o scp, no recomiendo la opción anterior (sin contraseña), ya que ha eliminado un nivel de seguridad en la autenticación basada en clave ssh. En su lugar, utilice la contraseña al crear el par de claves y use el agente SSH para realizar ssh y scp sin tener que introducir la contraseña cada vez que, como se explica en los pasos siguientes.

Después de 8 pasos se explica cómo realizar SSH y SCP desde lo local-host a un host remoto sin introducir la contraseña en el sistema de OpenSSH 1. Compruebe que local-host y el host remoto está en ejecución openssh -V

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

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


2. Generar par de claves en el local-host utilizando 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 se almacena normalmente ensu directorio home. En este ejemplo, se encuentra en /home/jsmith/.sshd. Usted no debe compartir la clave privada con nadie.

Por defecto el ssh-keygen en OpenSSH genera par de claves RSA. También puede generar par de claves DSA usando el comando: ssh-keygen -t dsa. 3. Instale la llave pública en el host remoto.

Copie el contenido de la clave pública desde el nivel local-host y pegarlo en el directorio /home/jsmith/.ssh/authorized_keys en la máquina remota. Si el directorio /home/jsmith/.ssh/authorized_keys ya tiene alguna clave pública, puede añadir esto al final de la misma. Si el directorio .ssh en su directorio home del host remoto no existe, creelo.

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

4. Dar permiso adecuado para el directorio. Ssh en la máquina remota.

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

5. Ingresa desde el local-host al host remoto utilizando la clave de autenticación 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 2011 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 local-host para realizar de ssh y scp sin necesidad de introducir la contraseña varias veces.

Verifique si el agente SSH se está ejecutando, si no se inicia 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 para el agente SSH en el local-host.

[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)

A continuación se presentan las diferentes opciones disponibles en el ssh-add:

    ssh-add : <key-file-name> Cargar un archivo de clave específica.
    ssh-add -l: Lista de todos los principales cargado en el agente ssh.
    ssh-add -d  <key-file-name>: Eliminar una clave definida en el agente ssh
    ssh-add -D: Borrar todos los principales 

8. Realizar SSH o SCP para el hogar a distancia desde el nivel local-host sin necesidad de introducir la contraseña.

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

[local-host]$ ssh -l jsmith remote-host
Last login: Sat Jun 07 2011 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>
Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política