Conexiones SSH más fáciles (Bookmarks + Llaves públicas)

Conexiones SSH más fáciles (Bookmarks + Llaves públicas):
Saludos estimados lectores! Un poco ausente, pero acá de vuelta con Ustedes.
Creo que el mayor problema al que nos enfrentamos los SyAdmins cuando tenemos que administrar muchos servidores es el hecho de tener que conocer (o aprendernos de memoria) las IP's, usuarios y contraseñas de cada uno de los servidores bajo nuestro "mando".
Esto a la larga se convierte en un problema de eficiencia si eres (Como yo) una persona que si bien no te conectas todo el día a los servidores, sí lo haces muchas veces en varios de ellos. En mi caso, resulta enloquecedor aprenderme todos esos xx.xxx.xxx, además que cada instancia maneja un usuario y contraseña distintos. Y a eso añádele que para los seres humanos server1 tiene más significado que 98.36.985.25.
Veamos cómo facilitar esta tarea:
Bookmarks SSH:
Primero hablaremos de cómo evitar el tener que aprendernos las IP's y usuarios de nuestros servidores, creando Bookmarks:
En los Bookmarks SSH puedes colocar tantos parámetros como esta documentación te permita.
Para esto, editamos el archivo ~/.ssh/config y añadiremos lo siguiente.
host myserver1
 hostname ip.servidor
 user myuser
Fíjate que la primera línea contiene el nombre del Bookmark (el nombre con el que te conectarás), designado por la palabra clave host. Las dos siguientes están indentadas por un espacio (Esto es OBLIGATORIO): hostname es la IP, dominio o nombre del servidor al que te conectarás, bien puede ser 253.369.58.45, mi.host.com, smtp.server.net... etc; user es el usuario que usarás para autenticarte en el servidor. Además de estos dos parámetros, yo suelo añadir un tercero que es "GSSAPIAuthentication no", ya que la conexión a veces se me retrasaba en ese paso.
Ahora, habiéndo creado el Bookmark, si antes te conectabas así:
$ ssh myuser@ip.servidor
Ahora te conectas así:
$ ssh myserver1
Mucho mejor ¿No?
Pero hay algo... el servidor te seguirá pidiendo contraseña cada vez que te conectes, si para tí resulta complicado saberte todas las contraseñas de tus servidores (Como en mi caso), entonces, harás lo siguiente:
Llaves Públicas:
Primero que todo, si no lo has hecho antes, crearás tu par Llave Pública - Llave Privada:
$ ssh-keygen
Recomiendo hacerlo sin PassPhrase si estás seguro de que no te robarán el computador o tu cuenta de Administrador :D. Si añades un PassPhrase, estarás obligado a usar dicha contraseña cada que vez necesites usar tus Llaves. Esto no es malo, de hecho, te puede servir para tener una "Clave Maestra" para tus conexiones SSH.
Ahora, creado tu par de Llaves, estas se almacenan en ~/.ssh, abre el archivo id_rsa.pub y copia su contenido. Conéctate al servidor cuyo Bookmark acabas de crear (En mi ejemplo sería myserver1 ) y una vez logueado, adita el archivo ~/.ssh/authorized_keys añadiendo al final el texto que copiaste de tu llave pública (id_rsa.pub). Si el archivo authorized_keys ya tiene contenido, puede ser conveniente que lo dejes y añadas tu llave al final de este (Una nueva línea).
Luego de haber hecho esto, cierra sesión de tu servidor ( $ exit ) y trata de conectarte escribiendo:
$ ssh myserver1
(O cualquiera que sea el nombre que le hayas puesto a tu Bookmark), si le pusiste PassPhrase a tus llaves, te las pedirá, en caso contrario seguirá y si has seguido bien los pasos, te logueará a tu servidor sin escribir su Usuario, IP ni Contraseña.
Ahora sí es fácil administrar muchos servidores. En tu archivo ~/.ssh/config puedes añadir todos los Bookmarks que desees, así (como si añadieras contactos a un celular) puedes agregar un registro para tu Servidor Web otro para tu BD, App... etc!
Espero les sirva!
@yeinerf

Comentarios

Entradas populares de este blog

Buscar la sesión por PID y ver la query SQL en Oracle

Como mover un indice de tipo LOB a un tablespace diferente

Eliminar procesos MySQL que están en estado SLEEP por determinado tiempo