Acceso ssh sin contraseña
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.






