Archivo

Entradas Etiquetadas ‘id_dsa.pub’

Acceso ssh sin contraseña

Domingo, 23 de Agosto de 2009 ajerez Sin comentarios

Otro post rapidito, esta vez para explicar como crear un par de claves para nuestro usuario y autentificarlo automáticamente contra un servidor ssh.

En este “Ejercicio” intervienen 2 máquinas, un equipo personal o un servidor A, y un equipo remoto o servidor B contra el que queremos autentificarnos. Esto suele utilizarse tanto para acceder a un servidor desde tu equipo local, como para autentificar un servidor contra otro para una transferencia que use ssh, como por ejemplo un scp, o un rsync.

Lo primero que tenemos que hacer es crear el par de claves para el usuario que queremos autentificar, esto lo haremos en nuestro equipo personal, o en el servidor que lanza la autentificación.

# ssh-keygen -t dsa

Cuando nos pida contraseña no debemos ponerle ninguna, si no estaremos en las mismas.

Una vez completado el proceso, tendremos dos ficheros nuevos en nuestro directorio home, por ejemplo:

  • /home/ajerez/.ssh/id_dsa.pub
  • /home/ajerez/.ssh/id_dsa

id_dsa.pub es la clave pública, la cual se copiara en el servidor remoto al que queremos acceder, y se contrastara contra la privada del equipo origen en cada conexión.

Ahora vamos a poner la clave pública en su sitio, dentro del servidor remoto.

Supongamos que nuestro usuario del equipo local es “ajerez”, y el usuario del equipo remoto contra el que queremos acceder es “remoteuser”, pues bién, debemos crear en el servidor (si no existe ya), el fichero /home/remoteuser/.ssh/authorized_keys, y dentro del fichero authorized_keys, meter el contenido del fichero id_dsa.pub para el usuario “ajerez” de nuestra máquina local o servidor A.

Si queremos hacerlo todo del tirón,  y tenemos habilitado el acceso ssh en la máquina local, podemos ejecutar el siguiente comando en el servidor remoto:

ssh maquinalocal -l ajerez “cat /home/ajerez/.ssh/id_dsa.pub” » /home/remoteuser/.ssh/authorized_keys

Una vez echo esto, desde nuestro equipo local podremos ejecutar:

localhost# ssh remoteuser@maquinaremota

y deberíamos acceder del tirón al equipo remoto, sin pedirnos contraseña ni nada.

Y esto es todo, esta es una práctica bastantes extendida, sencilla y que nos ahorrara mucho tiempo, pero tampoco debemos abusar de ella, sobre todo en entornos de red, ya que si tuviéramos una máquina con acceso ssh sin contraseña a todas los equipos de nuestra red, puede convertirse en un objetivo muy jugoso para usuarios malintencionados. Y recordad, tened siempre controlado el fichero id_dsa, ya que cualquiera con ese fichero, podrá acceder a vuestro server sin necesidad de usar contraseña.

Nota: Para usuarios de windows no se como esta la cosa, así que os recomendaría crear las claves con un equipo linux y luego instalarlas en nuestro cliente ssh de windows.