cableando

Conexiones con claves SSH

Las contraseñas son un método de autentificación de control de acceso, utilizado en la gran mayoría de sitios web y otro tipo de software. Con el paso de los años queda demostrado que las contraseñas no son lo suficientemente seguras, y aquí entran las claves SSH.

Autor
Gabi Franco
Publicado
Lectura
3 minutos
Formato
Tutorial
Contenido del tutorial +

    Las contraseñas son un método de autentificación de acceso, que con el paso del tiempo, ya se ha demostrado que no son lo suficientemente seguras. Aquí es donde entran las claves SSH.

    El acceso a un servidor es muy importante, es la puerta principal para la administración del servidor, es por eso que es muy importante securizar su acceso.

    Vamos a enseñarte a cómo securizarlo utilizando claves SSH.

    ¿Qué son las claves SSH?

    Las claves SSH, al igual que las contraseñas, son un método de autentificación.

    Su funcionamiento se basa en dos claves diferentes: la clave privada que se almacena en el cliente y la clave pública que se deberá ubicar en el servidor.

    El cliente intenta acceder al servidor con la clave, y si estas coinciden, el acceso se permite sin utilizar necesariamente ninguna contraseña.

    Estas claves están totalmente cifradas, pueden estar cifradas con diferentes métodos, como por ejemplo ed25519 y, el más habitual, RSA.

    Creación de las claves

    Para generar el par de claves, pública y/o privada deberemos utilizar el comando ssh-keygen desde el cliente:

    ssh-keygen

    Se creará un par de claves RSA, una vez introducido el comando veremos lo siguiente.

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/gfranco/.ssh/id_rsa):

    Podemos elegir la ruta donde queramos el par de claves, por defecto las dejamos dentro del directorio oculto llamado .ssh.

    Podemos guardar las claves en una unidad externa, como un pendrive, en el caso de que queramos tener una clave siempre guardada de forma segura.

    A continuación nos pedirá una contraseña, lo cuál es muy recomendable pero no necesario. La contraseña dentro de la clave nos proporciona mucha más seguridad para el acceso al servidor.

    Your identification has been saved in /home/gfranco/.ssh/id_rsa
    Your public key has been saved in /home/gfranco/.ssh/id_rsa.pub
    The key fingerprint is:
    SHA256:AHg8LOxnWjL81sSVux0YWy52rrQRcfmQVkC0GzxGMaw gfranco@nebula
    The key's randomart image is:
    +---[RSA 3072]----+
    | . +.    =B*.    |
    |  + =.  =oOo     |
    | o o o.. %*o     |
    |  = + o.E.++.    |
    |   O o .SB..     |
    |  . o . + o      |
    |   .   . +       |
    |        o        |
    |                 |
    +----[SHA256]-----+
    

    Y ya tendremos nuestra clave pública y privada para realizar autenticación en servidores. Una vez conseguida la clave podemos proceder a subir la pública a nuestro servidor.

    Subida de clave al servidor

    En primer lugar deberemos identificar la clave pública, del par que se ha generado, la pública es la que tiene la extensión .pub.

    Para subirla abrimos la clave desde el cliente con cualquier editor de texto y copiamos su contenido.

    cat .ssh/id_rsa.pub

    Copiamos el contenido de la clave pública y lo deberemos pegar en el fichero authorized_keys en el directorio .ssh de nuestro usuario en el servidor. Simplemente lo copiamos, si no existe el fichero deberás crearlo.

    sudo nano .ssh/authorized_keys

    Securizar el acceso SSH a sólo claves

    Una buena medida de seguridad es permitir únicamente el acceso al servidor a través de claves, una vez subida tu clave al servidor y funcionando correctamente lo único que tendremos que hacer es desactivar el acceso a través de contraseña y activar el acceso a través de claves.

    Deberemos modificar el fichero de configuración que es el /etc/ssh/sshd_config:

    ...
    PubkeyAuthentication yes
    ...
    PasswordAuthentication no
    ...

    Y reiniciamos el servicio con el siguiente comando:

    sudo systemctl restart ssh.service

    O con el comando:

    sudo systemctl restart sshd.service

    Muy importante, recuerda que si deshabilitas el acceso por contraseña y dejas únicamente el acceso por claves puedes perder el acceso al servidor por SSH.

    Es por eso tener como recurso una clave guardada en un pendrive, o tener garantizado el acceso a través de otra vía al servidor como VNC u otra.

    Compartir

    X / Twitter LinkedIn

    Escrito por

    Gabi Franco

    Director

    Human. Focused on the digital transformation of society.

    ¿Te ha resultado útil?

    Sigue leyendo

    Cómo desarrollar un sitio web sostenible

    Tutorial / Desarrollo

    Cómo desarrollar un sitio web sostenible

    Las sorprendentes cifras sobre el impacto ambiental del desarrollo web revelan la urgencia de abordar la sostenibilidad en el ámbito digital. Datos sobre emisiones de CO2 y consumo energético que subrayan el deber de adoptar prácticas más sostenibles en el diseño y desarrollo de plataformas. Se ponen encima de la mesa principios y prácticas clave para guiar el camino hacia un futuro digital más verde y responsable.

    /13 min

    Conectando servicios para una administración eficiente

    Tutorial / Sistemas

    Conectando servicios para una administración eficiente

    La interoperabilidad, esencial en la colaboración tecnológica, se destaca como clave en el ámbito gubernamental. Aquí exploramos su importancia, desafíos y soluciones para una transformación eficiente.

    /7 min

    Bypass de requisitos Windows 11

    Tutorial / Sistemas

    Bypass de requisitos Windows 11

    Es posible que hayas intentado instalar Windows 11 en tu ordenador, pero... tu ordenador no cumple los requisitos que exige el sistema operativo ¡vamos hacer un bypass!

    /3 min