Primero hay que crear la clave de conexión desde la aplicación pulsando Generate Key, moviendo el ratón generara el código aleatoriamente y obtendremos una pantalla similar a la siguiente. También es recomendable poner algún comentario en el campo key comment:
Mientras mantenemos esta pantalla abierta estableceremos conexión con el servidor usuario root y ejecutaremos:
useradd -s /bin/bash -m nombreusuario
Añadiremos este usuario a la lista de superusuarios
visudo
modificaremos la siguiente línea:
# User privilege specification
root ALL=(ALL:ALL) ALL
Por:
# User privilege specification
# root ALL=(ALL:ALL) ALL
root ALL=(ALL:ALL) ALL
usuario ALL=(ALL) NOPASSWD: ALL
Salvaremos con CTRL+X y Y
Hemos modificado el fichero diciendole que nuestro usuario no hará falta que entre password para realizar tareas necesarias de privilegios. No obstante tenemos que asignarle un password mediante:
passwd username
Ahora hay que crear un directorio .ssh en el home del usuario creado para almacenar la key.
mkdir /home/username/.ssh
Y dentro crear un fichero con la key:
vim /home/username/.ssh/authorized_keys
alli copiaremos la clave que hemos generado mediante puttygen y salvaremos mediante "escape"
:wq
Grabaremos la clave pulsando en save private key, yo personalmente la grabaría en un dropbox folder para tenerla disponible en cualquier equipo.
Si hubiera varios usuarios el fichero podría ser como el siguiente, dónde # especifica comentarios y la clave esta en cada linea sin interrupciones ni espacios en blanco
# user1
aquiclaveenunasolalineatodoseguidoysinespacios
# user2
aquiclaveenunasolalineatodoseguidoysinespacios
Para finalizar deberemos modificar el fichero /etc/ssh/sshd_config de la siguiente manera:
Podemos cambiar el puerto, por ejemplo al 28 en la linea:
port 28
Confirmar que las siguientes lineas estan como YES
RSAAuthentication yes
PubkeyAuthentication yes
Importante -> antes de proseguir probar la nueva autentificación, si no podriamos perder la conectividad con root y sería un problema que podemos evitar fácilmente.
Para impedir que el usuario root pueda hacer logon mediante ssh cambiar las siguientes lineas
:
PermitRootLogin no
PasswordAuthentication no
Ahora reiniciaremos el servicio mediante
/etc/init
.d
/ssh
restart y si da problemas con un reinicio del servidor bastará.
Para testear el login debemos conectar con putty, poner la ip, e ir a la opción Connection->SSH auth-> Browse en certifcates y seleccionar el *.PPK que hemos creado.
Al conectar sólo nos pedirá el nombre de usuario y comparará las claves, si son correctas permitirá el acceso.
Podemos ver los logs mediante:
tail -f /var/log/auth.log y podra aparecer algo como esto:
El primer círculo muestra una prueba de intento de conexión mediante usuario root, rechazada y marcada como BREAK-IN ATTEMP.
En el segundo círculo vemos aceptada la publik key para el usuario creado.
Hemos securizado un poco más el servidor mediante tres pasos:
-Cambio de puerto SSH.
-Denegación de logon root.
-Creación de clave pública para usuario distinto de root.