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