martes, 25 de septiembre de 2012

SSH - Generar llave de confianza en solo 3 pasos


Cuando nos conectamos mediante ssh nos pide la contraseña del usuario para realizar con éxito la conexión, esto si bien es cierto es un grado de seguridad, puede resultarnos útil que a nuestra máquina no le pida la contraseña, esto se logra creando una relación de confianza, lo que hace es que nuestra máquina sea reconocida por la máquina remota como equipo de confianza y sólo a la máquina la deje ingresar sin contraseña, las demás les pedirá dicha contra.

El tutorial lo dividiré en 3 partes, la primera parte contendrá sólo las sintaxis, la segunda parte tendrá un ejemplo de conexión y la tercera parte será un bash script que podemos ejecutar para automatizar esto.

Primera parte - Sintaxis

PASO 1: Con nuestro usuario (no con root) debemos generar la key:

$ ssh-keygen

Aquí nos saldrá una serie de preguntas, simplemente apretamos enter y dejamos todo en blanco.

PASO 2: Copiar nuestra key pública al host remoto

$ ssh-copy-id -i ~/.ssh/<> <usuario>@<host remoto>

Luego de esto nos pedirá ingresar la contraseña del usuario remoto, la ingresamos y nos deberá aparecer un mensaje diciendo: “now try logging into the machine, with "ssh '<usuario>@<host>'" lo que significa que ya podemos loguearnos sin necesidad de la contraseña

PASO 3: Conectarse a la máquina remota por SSH

$ ssh <usuario>@<host>



Segunda parte - Ejemplo

Ejemplo 1

PASO 1: Con nuestro usuario (no con root) debemos generar la key:

$ ssh-keygen

PASO 2: Copiar nuestra key pública al host remoto

ssh-copy-id -i ~/.ssh/id_dsa.pub root@192.168.1.105

PASO 3: Conectarse a la máquina remota por SSH

ssh root@192.168.1.105


Ejemplo 2

PASO 1: Con nuestro usuario (no con root) debemos generar la key:

$ ssh-keygen -t id_dsa.pub -b 1024

PASO 2: Copiar nuestra key pública al host remoto

ssh-copy-id -i ~/.ssh/id_dsa.pub root@192.168.1.105

PASO 3: Conectarse a la máquina remota por SSH

ssh root@192.168.1.105


Como podemos darnos cuenta, en tan solo 3 pasos podemos generar una llave de confianza, tenemos que tener en cuenta que tipo de key hemos creado, ya que podemos crear una key dsa o una rsa, también podemos agregar opción como el -t para elegir el tipo (rsa o dsa) -b para ver la cantidad de bits, etc. Todo esto lo podemos ver en el manual haciendo

$ man ssh
$ man ssh-keygen
$ man ssh-copy-id



Tercera parte - Bash Script

Como amante de la línea de comandos y de Bash, debemos generar un Bash Script para generar una llave de confianza automatizada, aquí dejo el script.

#!/bin/bash
#
# author:       Nicolás Ormeño
# email:        ni.ormeno at gmail dot cl
# license:      GPL V3
# date:         2012-09-25
# description:  Script para generar llaves de confianzas SSH BASICAS!
#
read -p "Crear llave? (s/n) " key

if [ $key == s ]; then
       read -p "rsa o dsa? " type
       ssh-keygen -t $type
fi
read -p "ip del host: " host

ssh-copy-id -i ~/.ssh/id_dsa.pub root@$host

0 comentarios:

Publicar un comentario