Algo que no tenía hecho en mi mini-pc después de mi última reinstalación desde cero, fue, primeramente crear mis claves públicas y privadas en cada uno de los equipos desde los que accedo a mi servidor casero y posteriormente deshabilitar el acceso por contraseña mediante mis conexiones por SSH.

Y sobre esto último es sobre lo que va este breve y sencillo artículo, ya que es algo que todos deberíamos hacer si tenemos nuestro servidor casero en casa o incluso si usamos un VPS para servir nuestras apps e información.

Imagen extraída de Unsplash y propiedad de Israel Palacio (c)

Los pasos son muy sencillos y conseguiremos que nadie nunca pueda acceder con «usuario/contraseña», ni siquiera nosotros mismos :). Por ello tendremos que tener cuidado y sobre todo probar nuestro acceso previamente con nuestra clave pública generada. Más adelante avisaremos en ese punto crítico para evitar sustos.

Configuración

Clave pública y privada

Lo primero será generar en nuestro equipo una clave pública y otra privada, esta última la copiaremos en nuestro servidor y con ellas podremos acceder desde ese equipo en concreto directamente. Si accedemos con varios equipos a nuestro servidor, tendremos que hacer lo mismo en cada uno de ellos.

Para crear las claves podéis seguir este artículo que escribí hace unos años donde explico todo paso a paso:

Si ya las tenéis creadas, podéis saltaros ese paso y seguir con el siguiente…

Pruebas de conexión

Este punto es el más importante, aunque en el artículo para crear clave pública y privada está explicado, tenemos que tener mucho cuidado y antes de desactivar la posibilidad de conectar por contraseña, tenemos que probar el acceso por clave pública y privada.

La prueba básicamente es lanzar una conexión por SSH a nuestro servidor, desde el equipo en el que tenemos nuestra clave pública, que será reconocida por la clave privada de nuestro servidor y nos dejará acceder. Para ello escribiremos esto desde la línea de comandos de nuestro servidor Windows/Linux:

ssh -i clave_publica.pub usuario@X.X.X.X

En el ejemplo de arriba, hay que tener en cuenta qué:

  • -i este es el parámetro usado para decir al comando SSH que usaremos una clave pública para conectar. Siempre tendremos que indicar el fichero que contiene nuestra clave pública para conectar de esta forma.
  • clave_publica.pub, es nuestra clave pública para usar, normalmente al crearla se ubica dentro de la carpeta de nuestro usuario seguido de la carpeta .ssh. Por lo que si queremos conectar tendríamos que poner «ssh -i .ssh/clave_publica.pub». Podemos copiar la clave pública en cualquier carpeta que queramos y el nombre del fichero también podemos cambiarla por el que queramos. Solo debemos tener cuidado de ponerlo bien todo a nivel de comando.
  • usuario, el nombre de usuario con el que conectaremos a nuestro servidor y que utilizar esas claves pública y privada.
  • X.X.X.X, la dirección IP privada o pública que corresponda con nuestro servidor.

Con eso la conexión a nuestro servidor, según pulsemos la tecla «Enter», debería ser directa, sin petición de ninguna contraseña.

IMPORTANTE: Si nos pidiera una contraseña, habría que revisar si estamos usando la clave pública correcta si tenemos varias, si estamos usando el usuario correcto, si la clave privada fue copiada correctamente en el servidor, etc. No desactivar el acceso por contraseña si esto sucede.

Si por el contrario, el acceso es correcto, nos encontraremos ya conectados con nuestro usuario y listos para añadir comandos y trabajar con nuestro servidor.

Deshabilitando acceso

Vamos ahora a deshabilitar el acceso mediante contraseña, esto lo haremos modificando el fichero de confirmación de SSH en nuestro servidor casero.

Lo primero será editar el fichero de configuración con permisos de root. El fichero es el siguiente y lo editaremos con nuestro editor favorito, en mi caso «vi»:

sudo vi /etc/ssh/sshd_config

Buscamos la siguiente línea en nuestro fichero:

#PasswordAuthentication yes

Seguramente se encuentre comentada con una almohadilla al inicio. Por lo que haremos dos cosas:

  • Quitar la almohadilla para activarla, y
  • Cambiaremos el «yes» por el «no»

La línea quedará así:

PasswordAuthentication no

Ahora salvamos el fichero y tocará reiniciar el servicio de SSH para que se apliquen estos cambios. No será necesario reiniciar y se aplicarán directamente los cambios.

Ejecutamos el siguiente comando para reiniciar:

sudo systemctl restart sshd

o con «Service» si tenemos una distribución linux sin SystemV:

service ssh restart

Y con esto ya estaría todo. Ahora solo quedaría que desconectarais y probar directamente el acceso con clave pública/privada.

Espero que esto os sirva para securizar un poco más vuestro servidor auto alojado 😉

Preguntar, dudas o cuestiones como siempre en los comentarios.

¡Nos vemos por el Fediverso!


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *