Configurant accés SSH a servidors amb certificats digitals i sense contrasenyes

Configurant accés SSH a servidors amb certificats digitals i sense contrasenyes

Vaig a explicar breument la manera d'accedir al servidor amb la clau pública RSA i d'aquesta manera podrem accedir sense ficar la contrasenya al prompt cada vegada que volem fer un SSH al servidor.

Per qüestions de seguretat, sempre solem afegir contrasenyes llargues amb caracters especials i que siguen difícils d'endevinar pels diccionaris mitjançant els anomenats atacs de força bruta. Encara que moltes vegades fiquem la mateixa contrasenya al mateix lloc o tenim algun man in the middle que esnifa i captura paquets i contrasenyes al vol. Les contrasenyes no són segures al món d'internet, és millor que les evitem sempre que puguem.

I si vols preocupar-te de veritat, revisa els logs de qui intenta accedir als teus servidors i ho comprovaràs. En aquest cas, la imatge d'aquest article són els intents d'accés a la meua Raspberry connectada 24x7 amb FreeBSD 11-CURRENT:

cat /var/log/auth.log | grep Failed

Configurant accés SSH a servidors amb certificats digitals i sense contrasenyes

Aleshores, és evident que llevar l'accés amb contrasenya i afegir accés únicament amb certificat digital és una molt bona opció.

Primer de tot cal crear un usuari idèntic que en la nostra màquina al servidor:


adduser EL_TEU_USUARI

Creem un parell de claus, li diem que les dese al directori per defecte i quan ens demana ficar contrasenya fem 'enter' dues vegades per tal de no ficar-ne'n cap:


$ ssh-keygen -t rsa

Creem un parell de claus, li diem que les dese al directori per defecte i quan ens demana ficar contrasenya fem 'enter' dues vegades per tal de no ficar-ne'n cap:


$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/joan/.ssh/id_rsa):
/home/joan/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/joan/.ssh/id_rsa.
Your public key has been saved in /home/joan/.ssh/id_rsa.pub.
The key fingerprint is:
78:61:5c:56:4e:f8:30:e7:74:93:e4:be:b2:4e:7e:fa EL_TEU_USUARI@EL_TEU_ORDINADOR

Ara pujem la clau pública (.pub) al servidor i ho afegirem al fitxer /home/EL_TEU_USUARI/.ssh/authorized_keys


scp .ssh/id_rsa.pub EL_TEU_USUARI@SERVIDOR:/mnt

I ara, al servidor:

echo /mnt/id_rsa.pub >> /home/EL_TEU_USUARI/.ssh/authorized_keys

I ja està configurat, ara ja podem fer SSH o SCP a EL_TEU_USUARI@SERVIDOR i accedirem al servidor sense cap contrasenya.

DESHABILITEM L'ACCÉS AMB CONTRASENYA AL SERVIDOR

Ara ens queda l'últim pas, deshabilitar l'accés amb contrasenya, de tal manera que nomès podran accedir al servidor aquelles màquines amb el certificat autoritzat al authorized_keys del nostre servidor SSH.

Aleshores, editarem el fitxer /etc/ssh/sshd_config i configurarem les següents tres línies:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes

Ara, reiniciem el servei SSH amb:

[root@benicassim /home/joan]# sh /etc/rc.d/sshd restart
Restarting sshd.

I ja ho tenim. Ja ningú es pot colar amb la tècnica de força bruta.

Espere que trobes útil aquest article, i que et motive a compartir els teus trucs i coneixements i experiments amb el Programari Lliure. La Comunitat del Programari Lliure et necessita! :-)