
02 Feb Cómo autenticar con clave pública en SSH
Hola como saben uno de mis trabajos en el de administrador de infraestructura informática (sysadmin o BOFH) , para esto necesito logearme a varios servidores desde la consola o shell, buscando una manera un poco mas segura de hacerlo, lo hago usando mi clave ssh.
Bien ¿como hacemos esto? supongamos que el usuario chuda en el sistema local (syslocal) debe ingresar al sistema remoto (sysremoto), en primer paso el usuario chuda debe crearse o generar un par de claves de autenticación SSH, para esto nos valemos de una herramienta que tiene por nombre ssh-keygen.
SSH implementa la autenticación con clave pública utilizando RSA o DSA. La versión 1 del protocolo SSH sólo soporta RSA, mientras que la versión 2 soporta ambos sistemas.
1 – Crear las llaves RSA en tu computador (syslocal)
chuda@syslocal:~$ ssh-keygen -t rsa
Te pedirá una serie de datos, responde a todas ellas con el valor predeterminado. Al terminar habrá creado 2 archivos en el directorio .ssh de la home de tu usuario: id_rsa y id_rsa.pub, la primera es llave privada y la segunda la pública.
Es esta llave publica (id_rsa.pub) la que vamos a subir al servidor, cuenta de hosting, para que el servicio de SSH te permita hacer login con la clave de la llave SSH.
2 – Acceder a tu cuenta de hosting vía SSH (sysremoto)
Ingresa a tu servidor, vps, hosting de la manera que lo haces siempre vía SSH ejemplo:
chuda@syslocal:~$ ssh chuda@sysremoto.com
una ves dentro vamos al directorio .ssh
chuda@sysremoto:~ $ cd .ssh
Es posible que el directorio no exista, en ese caso debemos crearlo y otorgarle los permisos necesarios.
chuda@sysremoto:~ $ mkdir ~/.ssh chuda@sysremoto:~ $ chmod 700 /home/usuario/.ssh chuda@sysremoto:~ $ cd ~/.ssh
3 – Añadir tu llave pública al archivo de autorizados
Una vez dentro de nuestro servidor y con el directorio .ssh creado y con los permisos necesarios debemos añadir la llave o clave publica SSH a un archivo llamado authorized_keys, que es donde se guardan todas las claves públicas que tienen acceso al servidor.
lo más sencillo es que copies el contenido de tu llave pública id_rsa.pub creada en el paso 1 una vez copiada abres al archivo authorized_keys, y añadimos o pegamos el contenido de nuestra llave pública.
chuda@sysremoto:~ $ nano ~/.ssh/authorized_keys
Si el archivo no existe lo creamos y le damos los permisos adecuados.
chuda@sysremoto:~ $ touch ~/.ssh/authorized_keys chuda@sysremoto:~ $ chmod 600 ~/.ssh/authorized_keys
Ok ya esta listo lo primero, ahora debemos modificar el archivo de configuración de ssh para que nos deje ingresar con la llave ssh, esto lo hacemos editando en archivo sshd_config que se encuentra en /etc/ssh/
nano /etc/ssh/sshd_config
luego buscamos la linea AuthorizedKeysFile que esta comentada y la des comentamos quitando el # que tiene delante.
#AuthorizedKeysFile %h/.ssh/authorized_keys <-- como esta por defecto AuthorizedKeysFile %h/.ssh/authorized_keys <-- como debe quedar
recuerda reiniciar los servicios de ssh
service ssh restart
Después cerramos cesión y cuando queramos ingresar nuevamente nos pedirá la clave de nuestra llave SSH.
Happy Hacking!