Creando y usando llaves ssh

Esta pequeña guía tiene como fin explicar la manera de crear e instalar llaves ssh para hacer mas agradables, seguros y rapidos accesos via ssh entre servidores.Una llave ssh consiste en dos partes, hay una llave privada y una llave pública. La llave privada es basicamente eso… privada. Si alguna persona se le permite ver o copiar ese archivo se vuelve posible para esa persona entrar a cualquier server que tenga esta llave ssh instalada. La llave pública se usa para distribuirla entre servidores y puede ser mostrada sin problema. El proceso de autorización de llaves SSH funciona en dos pasos. Cuando yo me conecto a un servidor con la llave privada instalada el cliente de ssh la ofrecerá al servidor remoto.El servidor entonces compara contra el archivo authorized_keys2 que contiene una lista de llaves públicas permitidas para autorizar el acceso. Si este proceso es satisfactorio el server permitirá acceso sin el uso de una contraseña. Este procedimiento es usualmente más rápido.

El primer paso es generar un par de llaves, usaremos DSA debido a que es más segura que RSA. Si deseas ponerle una contraseña, la puedes poner, en caso contrario solo presiona enter. Una contraseña es recomendable por que forza al usuario a necesitar la contraseña de la llave. El problema es que si deseas la llave para realizar procedimientos automatizados la llave tiene que hacerse sin password por comodidad.( Normalmente mis llaves personales van sin contraseña )

—–comandos—–
cd .ssh
ssh-keygen -t dsa
—–comando—–

Esto crea dos archivos id_dsa y id_dsa.pub. Seria altamente recomendable que mantuvieras un respaldo de ambos archivos en caso de querer usar esta llave en varios servidores. La parte más importante es que guardes el archivo id_dsa en un lugar MUY seguro, si alguien más obtiene dicho archivo, podrá entrar a cualquier servidor con esa llave instalada. Ahora haz cat en el archivo pub y salva el texto, lo vamos a usar en el otro servidor.

—–comando—–
cat ~/.ssh/id_dsa.pub
—–comando—–

Ahora entra a el otro servidor como el usuario en donde quieres instalar la llave y haz lo siguiente:

—–comandos—–
mkdir ~/.ssh/
touch ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys
—–comandos—–

Ahora pega los contenidos de id_dsa.pub ahi y salva el archivo. Ahora cambiaremos los permisos del archivo ( algunas versiones de SSH son muy pedantes al respecto de los permisos del archivo authorized_keys2 ).

—–comando—–
chmod 700 ~/.ssh/authorized_keys2
—–comando—–

Las llaves Ssh ahora deberián estar funcionando. Intenta entrar y revisa si funciona, si no es asi, intenta hacer un ssh -v user@host, la opción -v activará el modo en el cual verás pasos relevantes de la transacción actual y puede ayudarte a diagnosticar el error.

**********************************************
**********************************************
Algunas cosas mas avanzadas que se pueden hacer con llaves ssh:

Activar login de root solo si el usuario usa llave ssh:

El permitir acceso a root solo con el uso de llaves ssh. Esta opción es muy valiosa ya que prevendrá que alguien intente entrar con procesos de login aleatorio y eventualmente obtener acceso al sistema y permitirá aún entrar como root. En un mundo ideal se configuraria el acceso solo usando llaves de ssh y permitiendo sólamente a un usuario capaz de hacer sudo en accesar. pero sé que esto no es algo práctico para muchas personas.Para permitir acceso a root usando solo llaves ssh se necesita editar el archivo sshd_config

—–comando—–
nano /etc/ssh/sshd_config
—–comando—–

Busca donde dice “PermitRootLogin yes”, comentala con un #. Haz una nueva linea justo abajo que diga “PermitRootLogin without-password”. Salva y reinicia ssh.

—–comando—–
service sshd restart
—–comando—–

Después de esto.. solo se puede entrar con root por ssh usando autorización por llaves.

**********************************************
**********************************************

Si quisiera usar llaves ssh con putty descarga puttygen.exe de http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe y ejecuta el programa. En las opciones selecciona DSA y luego “generate”. Una vez hecho verás una sección con el texto que contiene la llave publica para colocarla en el archivo authorized_keys justo como arriba se describe.

**********************************************
**********************************************

Hay muchas cosas que se pueden hacer con ssh, como mover backups automáticamente o correr comandos en un servidor remoto desde otro pero eso es más de lo que explique esta vez. Hay mucha información en Google acerca de llaves ssh si es que necesitas más información o ideas de como usarlas más.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *