Inicio > Unix > Configurar acesso ssh sin clave entre maquinas

Configurar acesso ssh sin clave entre maquinas

Jueves, 17 de septiembre de 2009 D3A Dejar un comentario Ir a comentarios

Desde hace algún tiempo tengo la necesidad de poder saltar de una máquina a otra con cierta agilidad. Simpre está el método de abrir tantas conexiones como servidores tenga que manipular; pero esto no sirve si lo que se desea es ejecutar algún comando en un equipo remoto desde un script.

Hace años se utilizaba mucho rsh, asociado al comando rlogin. Pero deje de usarlo (y permitirlo) debido a que hay multitud de vulnerabilidades de seguridad asociadas a este protocolo. ¿Y ahora qué?

Pues aquí es donde ssh viene a “rescatarnos”. Y la verdad es que el proceso configuiración es bastante simple. No pretendo crear un guía de uso de ssh solo la forma más rápida (y relativamente segura) de configurar dos máquinas para que se puedan intercambiar ficheros y ejecutar comandos remotamente sin tener que escribir la clave del usuario en cada paso.


Supongamos que tenemos dos máquinas (maquina1 y maquina2, original, no?) y que en ambas ya existe un usuario llamado admin. Suponemos también que su ruta de inicio (home) es /home/admin. Podríamos usar root, pero no es muy aconsejable; apuesto a que cualquier guía de seguridad y best-practices lo desaconseja.

Queremos que desde la maquina1 el usuario admin pueda enviar fichero y ejecutar comandos remotos en la maquina2 con el usuario admin.

El primer paso es crear las claves del usuario admin en maquina1:

ssh-keygen -b 1024 -t dsa

El sistema hace tres preguntas. La primera nos sugiere la ubicación para la clave privada del usuario, y en este caso interesa que la clave privada permanezca en la ruta por defecto. Las otras dos piden una clave para leer la clave privada, en este caso la dejamos en blanco ya que lo que estoy buscando es no tener que especificar la clave cuando trate de interconectar los sistemas. Haciendo esto se debe tener mucho cuidado con lo que se hace con dicha clave privada.

Como resultado el comando anterior se habrán generado dos ficheros: /home/admin/.ssh/id_dsa (que contiene la clave privada) y /home/admin/.ssh/id_dsa.pub (que contiene la clave pública).

Ahora es cuando hay que decirle a admin@maquina2 que “confíe” en admin@maquina1 y para ello debemos indicarle a admin@maquina2 cual es la clave pública de admin@maquina1.

El proceso es simple, se debe crear en maquina2 la carpeta /home/admin/.ssh y dentro de esta carpeta crear un fichero con el nombre authorized_keys; dentro de este fichero se debe insertar el contendo /home/admin/.ssh/id_dsa.pub de maquina1.

ssh maquina2 "mkdir /home/admin/.ssh"
scp /home/admin/.ssh/id_dsa.pub /home/admin/.ssh/id_dsa.maquina1.pub
ssh maquina2 "cat /home/admin/.ssh/id_dsa.maquina1.pub
              >> /home/admin/.ssh/authorized_keys"
Categories: Unix Tags: ,
  1. Sin comentarios aún.
  1. Sin trackbacks aún.

Spam Protection by WP-SpamFree