Autenticación vía ssh public key

Esto es algo muy útil, el objetivo lograr que determinado usuario, en determinada máquina se puede logear en otra máquina bajo otro usuario sin la necesidad de que nos pida clave. Esto se puede usar para tareas programadas, como por ejemplo backups, verán varios ejemplos de rsync y de bacula que suponen que ya hicieron esto, o bien para que nuestros administradores de sistemas puedan entrar en nuestro servidor sin conocer la clave del mismo, por ejemplo si contratamos a un freelance que tendrá acceso solo por un momento de tiempo.

Para el ejemplo usaré dos máquinas c4 DESDE donde queremos ejecutar comandos sin que nos pida clave, y c1 DONDE queremos ejecutar los mismos. O sea, c4 es el cliente y c1 el servidor.

ssh cliente servidor

Lo primero que tenémos que hacer es generar nuestra clave pública , lo hacemos así:

[root@c4 ~]# cd ~/.ssh

[root@c4 .ssh]# ssh-keygen -q -f id_rsa -t rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
IMPORTANTE: pongan enter y enter, o les pedirá la clave para poder usar la clave privada.
Ahora tenemos que pasar nuestra clave pública (.pub) al administrador de c1 (que soy yo :P)
[root@c4 .ssh]# cat id_rsa.pub | mail -s “mi clave publica” correodeladmni@hotmail.com
Desde ahora en adelante le toca trabajar al admin de c1, que tiene que importar la clave:
[root@c1 ~]# echo “ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy2iJHQlUUoZ1Kybeyk5bkqJYSihTJkjuXNGvYKK2XVH2SbpSIRz2tcdxjYRWgtdroPVX8D8wHDmJDzhnPLK/4fg0tAyQSmFtHy2Gp8XJZLSKVWTF6lLz74BvH4o98q3Z9UXpM0Tc0IyG4oWlVOVPYBlKlFaXbVyl7E74ZFuq1VkJRM9w5w/qfOE3q59mgElBl4Jf4U4W3GIifGLn6ll/eWGOxzIGv/IXZ/TNB+W/Tv6fi9dvj+xvmokoAZKN1mETorB3NmAPU7xmFUS/0zcVGdOHm0QWKYSHCfRuwj42NtJEh9KRhty6VxcRJc34Sla2FS0PY6InfS4uf4UoCcpktQ== root@c4.XXXXXXX.com” >> .ssh/authorized_keys
Con eso importamos la clave, y si ahora desde c4 nos conectamos a c1…
[root@c4 .ssh]# ssh root@c1.XXXXXX.com
Last login: Thu Jun  3 14:01:16 2010 from 209.40.100.72
[root@c1 ~]#
Buala! funciona, si en algún momento no querémos más que pueda entrar esta persona, simplemente sacamos su clave pública del archivo authorized_keys.
espero les sirva 😉

Tags: , , , , , ,

One Response to “Autenticación vía ssh public key”

  1. […] ejemplo de como sincronizar fácilmente carpetas con rsync. Lo primero que tienen que hacer es leer este post en donde les explica como generar una public key, la que será usada luego como mecanismo de […]