ssh-keygen és un component estàndard dels paquets de protocols Secure Shell (SSH) que es troben als sistemes informàtics Unix i Microsoft Windows. Aquests protocols s'utilitzen per establir sessions de shell segures entre ordinadors remots a través de xarxes insegures mitjançant diverses tècniques criptogràfiques. En particular, la utilitat ssh-keygen s'utilitza per generar, gestionar i convertir claus d'autenticació per accedir-hi mitjançant aquests protocols.
Instal·lació de la característica de client OpenSSH al Windows
Si utilitzes un equip amb Windows, cal tenir aquesta característica. Pots executar el següent al PowerShell amb privilegis d'administrador per instal·lar-la:
# Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
També ho pots fer des d'"Agregar características opcionales".
Creació de claus:
Per generar les claus per a l'accés SSH, has d'executar:
# ssh-keygenPer defecte, utilitza RSA de 3072 bits. Per generar les claus amb un xifratge més robust (per exemple, RSA de 4096 bits), pots executar:
# ssh-keygen -t rsa -b 4096
Un cop executada l'ordre, la utilitat et demanarà primer un directori on desar les claus. Pots deixar-lo en blanc prement directament Enter per utilitzar el camí per defecte:
Generating public/private rsa key pair.
Enter file in which to save the key (/user/.ssh/id_rsa):A continuació, t'oferirà la possibilitat d'afegir una frase de pas per utilitzar la clau (opcional):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:Pots deixar-la en blanc si vols prescindir d'introduir-la quan utilitzis la clau per connectar-te. Un cop fetes aquestes accions, les claus s'hauran creat i hauria d'aparèixer una sortida semblant a la següent:
Your identification has been saved in /user/.ssh/id_rsa
Your public key has been saved in /user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:7dRQDxLJcKXoZAVByMHQ0aR5AG2O8qgu7BT83kRgvVc user@equipo
The key's randomart image is:
+---[RSA 3072]----+
| oB+B*==++ |
| . B+.+o+ o |
| o =o =Eo . |
|. o o o=.. o |
| o + o .S o . |
| + o . o |
|.o . . . |
|+.. o |
|+o . . |
+----[SHA256]-----+
Transferència de claus:
Per poder utilitzar-les amb el servidor remot, hauràs de copiar la clau al servidor de destinació. Hi ha diversos mètodes per transferir-la, però pots executar l'ordre següent per fer-ho més ràpidament (substitueix l'usuari i l'adreça IP pels del servidor remot):
# ssh-copy-id usuario@direcciónIPUn sistema Windows no inclou aquesta funció, però és fàcil de replicar. Pots executar el següent (substitueix l'usuari i l'adreça IP pels del servidor remot):
# ssh usuario@direcciónIP "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1" < .ssh\id_rsa.pubAra podràs provar l'accés directament amb la clau generada sense utilitzar la contrasenya del servidor. Tal com hem explicat abans, si has configurat una frase de pas en generar la clau, et demanarà que la introdueixis per accedir al servidor.
Desactivació de l'autenticació amb contrasenya (opcional)
Avís
Si les claus s'eliminen o es perden amb l'autenticació amb contrasenya desactivada, també perdràs l'accés mitjançant el protocol SSH. Per configurar altres claus o simplement accedir al servidor, hauràs de fer-ho a través de la Consola d'emergència.
Addicionalment, pots desactivar l'autenticació amb contrasenya un cop tinguis accés mitjançant la clau SSH. D'aquesta manera, podràs evitar atacs de força bruta al servidor prescindint d'aquest mètode.
Per fer-ho, edita el fitxer de configuració del servei i modifica el paràmetre PasswordAuthentication traient-ne el signe de comentari i establint-lo a "no" per desactivar-lo. Pots executar directament aquesta ordre sed per substituir la configuració per defecte per la que hem esmentat:
# sed -i "/#PasswordAuthentication yes/c\PasswordAuthentication no" /etc/ssh/sshd_configFinalment, torna a carregar la configuració del servei SSH perquè el canvi tingui efecte:
# systemctl reload sshd.serviceEsperem que aquest tutorial t'hagi estat útil. Si tens consultes sobre aquesta qüestió o qualsevol altra relacionada amb els teus servidors a Clouding, no dubtis a contactar amb soporte@clouding.io Som aquí per ajudar-te!