Archivo

Entradas Etiquetadas ‘sshd’

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.