Com configurar les claus SSH a Ubuntu 20.04

Bloc

Com configurar les claus SSH a Ubuntu 20.04

Com configurar les claus SSH a Ubuntu 20.04

Introducció

SSH, o intèrpret d'ordres segur, és un protocol xifrat que s'utilitza per administrar i comunicar-se amb els servidors. Quan treballeu amb un servidor Ubuntu, és probable que passeu la major part del temps en una sessió de terminal connectada al vostre servidor mitjançant SSH.



En aquesta guia, ens centrarem en la configuració de claus SSH per a una instal·lació d’Ubuntu 20.04. Les claus SSH proporcionen una manera fàcil i segura d’iniciar sessió al servidor i es recomanen per a tots els usuaris.

Pas 1: creació del parell de claus

El primer pas és crear un parell de claus a la màquina client (normalment el vostre ordinador):



ssh-keygen

Per defecte, les versions recents de ssh-keygen crearà un parell de claus RSA de 3072 bits, que és prou segur per a la majoria de casos d’ús (podeu passar opcionalment a la bandera -b 4096 per crear una clau de 4096 bits més gran).

Després d’introduir l’ordre, hauríeu de veure la sortida següent:



OutputGenerating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa):

Premeu Intro per desar el parell de claus al .ssh/ al directori inicial o especifiqueu un camí alternatiu.

Si anteriorment havíeu generat un parell de claus SSH, és possible que vegeu el següent missatge:

Output/home/your_home/.ssh/id_rsa already exists. Overwrite (y/n)?

Si decidiu sobreescriure la clau del disc, ho faràs no ja podeu autenticar-vos amb la clau anterior. Tingueu molta precaució a l’hora de seleccionar sí, ja que es tracta d’un procés destructiu que no es pot revertir.

A continuació, hauríeu de veure l'indicatiu següent:

OutputEnter passphrase (empty for no passphrase):

Aquí podeu introduir una contrasenya segura, que és molt recomanable. Una frase de contrasenya afegeix una capa de seguretat addicional per evitar que usuaris no autoritzats iniciïn la sessió.

plantilles de llocs web react gratis

Aleshores hauríeu de veure la sortida similar a la següent:

OutputYour identification has been saved in /your_home/.ssh/id_rsa Your public key has been saved in /your_home/.ssh/id_rsa.pub The key fingerprint is: SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host The key's randomart image is: +---[RSA 3072]----+ | .| | + | | + | | . o . | |o S . o | | + o. .oo. .. .o| |o = oooooEo+ ...o| |.. o *o+=.*+o....| | =+=ooB=o.... | +----[SHA256]-----+

Ara teniu una clau pública i privada que podeu utilitzar per autenticar-vos. El següent pas és col·locar la clau pública al servidor per poder utilitzar l'autenticació basada en clau SSH per iniciar la sessió.

Pas 2: copiar la clau pública al servidor Ubuntu

La forma més ràpida de copiar la vostra clau pública a l'amfitrió d'Ubuntu és utilitzar una utilitat anomenada ssh-copy-id. Per la seva simplicitat, aquest mètode és molt recomanable si està disponible. Si no teniu ssh-copy-id disponible al vostre equip client, podeu utilitzar un dels dos mètodes alternatius que es proporcionen en aquesta secció (copiar mitjançant SSH basat en contrasenya o copiar manualment la clau).

Còpia de la clau pública mitjançant ssh-copy-id

El ssh-copy-id l'eina està inclosa per defecte en molts sistemes operatius, de manera que és possible que la tingueu disponible al vostre sistema local. Perquè aquest mètode funcioni, ja heu de tenir accés SSH basat en contrasenya al vostre servidor.

Per utilitzar la utilitat, heu d'especificar l'amfitrió remot al qual voleu connectar-vos i el compte d'usuari al qual teniu accés SSH basat en contrasenya. Aquest és el compte al qual es copiarà la vostra clau SSH pública.

La sintaxi és:

ssh-copy-id username@remote_host

És possible que vegeu el missatge següent:

OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

Això significa que el vostre equip local no reconeix l'amfitrió remot. Això passarà la primera vegada que us connecteu a un amfitrió nou. Escriviu sí i premeu ENTER per continuar.

A continuació, la utilitat explorarà el vostre compte local per id_rsa.pub clau que hem creat anteriorment. Quan trobi la clau, us demanarà la contrasenya del compte de l'usuari remot:

Output/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:

Escriviu la contrasenya (no es mostrarà l’escriptura per motius de seguretat) i premeu ENTER. La utilitat es connectarà al compte de l'amfitrió remot mitjançant la contrasenya que vau proporcionar. A continuació, copiarà el contingut del vostre ~/.ssh/id_rsa.pub clau en un fitxer a la casa del compte remot ~/.ssh directori anomenat authorized_keys.

Hauríeu de veure la sortida següent:

OutputNumber of key(s) added: 1 Now try logging into the machine, with: 'ssh 'username@203.0.113.1'' and check to make sure that only the key(s) you wanted were added.

En aquest moment, el vostre id_rsa.pub clau s'ha carregat al compte remot. Podeu continuar Pas 3 .

Copiant la clau pública mitjançant SSH

Si no teniu ssh-copy-id disponible, però teniu accés SSH basat en contrasenya a un compte del vostre servidor, podeu penjar les vostres claus mitjançant un mètode SSH convencional.

Ho podem fer utilitzant el cat ordre per llegir el contingut de la clau SSH pública al nostre equip local i canalitzar-lo mitjançant una connexió SSH al servidor remot.

A l’altra banda, ens podem assegurar que el ~/.ssh existeix i té els permisos correctes al compte que fem servir.

A continuació, podem enviar el contingut que hem enviat a un fitxer anomenat authorized_keys dins d’aquest directori. Utilitzarem el >> símbol de redirecció per afegir el contingut en lloc de sobreescriure'l. Això ens permetrà afegir claus sense destruir les claus afegides anteriorment.

L'ordre complet té aquest aspecte:

cat ~/.ssh/id_rsa.pub | ssh username@remote_host 'mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys'

És possible que vegeu el missatge següent:

OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

Això significa que el vostre equip local no reconeix l'amfitrió remot. Això passarà la primera vegada que us connecteu a un amfitrió nou. Escriviu yes i premeu ENTER per continuar.

Després, se us demanarà que introduïu la contrasenya del compte d'usuari remot:

Outputusername@203.0.113.1's password:

Després d'introduir la vostra contrasenya, el contingut del vostre id_rsa.pub la clau es copiarà al final del authorized_keys del compte de l'usuari remot. Continueu amb el pas 3 si ha estat correcte.

Copiant la clau pública manualment

Si no teniu accés SSH basat en contrasenya al vostre servidor, haureu de completar el procés anterior manualment.

Afegirem manualment el contingut del vostre id_rsa.pub arxiu al ~/.ssh/authorized_keys arxiu a la màquina remota.

Per mostrar el contingut del vostre id_rsa.pub , escriviu-la al vostre equip local:

cat ~/.ssh/id_rsa.pub

Veureu el contingut de la clau, que hauria de ser semblant a aquest:

Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

Accediu al vostre amfitrió remot mitjançant el mètode que tingueu disponible.

Un cop tingueu accés al vostre compte al servidor remot, heu d'assegurar-vos que | | + + _ | existeix el directori. Aquesta ordre crearà el directori si cal, o no farà res si ja existeix:

~/.ssh

Ara podeu crear o modificar el mkdir -p ~/.ssh dins d’aquest directori. Podeu afegir el contingut del vostre authorized_keys al final del fitxer id_rsa.pub fitxer, creant-lo si cal, mitjançant aquesta ordre:

authorized_keys

A l'ordre anterior, substituïu el echo public_key_string >> ~/.ssh/authorized_keys amb la sortida del public_key_string que heu executat al vostre sistema local. Ha de començar per cat ~/.ssh/id_rsa.pub.

Finalment, ens assegurarem que el ssh-rsa AAAA... directori i ~/.ssh tenen els permisos adequats establerts:

authorized_keys

Això elimina recursivament tots els permisos de grup i altres per al chmod -R go= ~/.ssh directori.

Si utilitzeu el arrel per configurar les claus d’un compte d’usuari, també és important que | | + + | | directori pertany a l'usuari i no a arrel :

~/.ssh/

En aquest tutorial, el nostre usuari es diu sammy, però hauríeu de substituir el nom d'usuari adequat a l'ordre anterior.

Ara podem intentar l’autenticació sense contrasenya amb el nostre servidor Ubuntu.

Pas 3: autenticació al servidor Ubuntu mitjançant claus SSH

Si heu completat amb èxit un dels procediments anteriors, hauríeu de poder iniciar sessió a l'amfitrió remot sense proporcionant la contrasenya del compte remot.

El procés bàsic és el mateix:

~/.ssh

Si és la primera vegada que us connecteu a aquest amfitrió (si heu utilitzat l'últim mètode anterior), és possible que vegeu alguna cosa així:

chown -R sammy:sammy ~/.ssh

Això significa que el vostre equip local no reconeix l'amfitrió remot. Escriviu sí i, a continuació, premeu ssh username@remote_host per continuar.

Si no vau proporcionar cap contrasenya per a la vostra clau privada, accedireu immediatament. Si vau proporcionar una frase de contrasenya per a la clau privada quan la vau crear, se us demanarà que l’introduïu ara (tingueu en compte que les pulsacions de tecles no es mostraran a la sessió del terminal per seguretat). Després de l’autenticació, s’hauria d’obrir una nova sessió d’intèrpret d’ordres amb el compte configurat al servidor Ubuntu.

Si l'autenticació basada en claus ha tingut èxit, continueu per obtenir informació sobre com protegir encara més el vostre sistema inhabilitant l'autenticació de contrasenya.

Pas 4: desactivació de l'autenticació de contrasenya al servidor

Si heu pogut iniciar sessió al vostre compte mitjançant SSH sense cap contrasenya, heu configurat correctament l'autenticació basada en clau SSH al vostre compte. Tanmateix, el vostre mecanisme d’autenticació basat en contrasenya continua actiu, cosa que significa que el vostre servidor encara està exposat a atacs de força bruta.

Abans de completar els passos d'aquesta secció, assegureu-vos que teniu configurada l'autenticació basada en claus SSH per a arrel en aquest servidor, o preferiblement, que teniu l'autenticació basada en clau SSH configurada per a un compte que no sigui root en aquest servidor amb OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes privilegis. Aquest pas bloquejarà els inicis de sessió basats en contrasenyes, de manera que és crucial assegurar-vos que encara podreu obtenir accés administratiu.

Un cop hàgiu confirmat que el vostre compte remot té privilegis administratius, inicieu sessió al servidor remot amb claus SSH, ja sigui com a arrel o amb un compte amb ENTER privilegis. A continuació, obriu el fitxer de configuració del dimoni SSH:

sudo

Dins del fitxer, cerqueu una directiva anomenada sudo. Aquesta línia es pot comentar amb un sudo nano /etc/ssh/sshd_config al principi de la línia. Descomenteu la línia traient el PasswordAuthentication i establiu el valor a #. Això desactivarà la possibilitat d'iniciar la sessió mitjançant SSH mitjançant contrasenyes del compte:

#

Deseu i tanqueu el fitxer quan hàgiu acabat prement no, i després . . . PasswordAuthentication no . . . per confirmar desar el fitxer i, finalment, CTRL+X sortir de nano. Per activar aquests canvis, hem de reiniciar el Y servei:

ENTER

Per precaució, obriu una nova finestra de terminal i comproveu que el servei SSH funciona correctament abans de tancar la sessió actual:

sshd

Un cop hàgiu verificat que el vostre servei SSH funciona correctament, podeu tancar amb seguretat totes les sessions de servidor actuals.

El dimoni SSH del servidor Ubuntu ara només respon a l'autenticació basada en claus SSH. S'han desactivat els inicis de sessió basats en contrasenyes.

Conclusió

Ara hauríeu de configurar l’autenticació basada en clau SSH al vostre servidor, cosa que us permetrà iniciar la sessió sense proporcionar cap contrasenya del compte.

Publicat originalment per Brian Boucheron a https://www.digitalocean.com

#ubuntu #security # desenvolupament web