SSH-võtmete seadistamine ja parooli väljalülitamine

chmod õiguste kalkulaator

Märgi õigused või sisesta kaheksandarv — saad sümbolkuju ja käsu chmod.
Lugemine (r)Kirjutamine (w)Käivitamine (x)
Omanik
Grupp
Teised
Sümbolkujurw-r--r--
chmod 644 fail

SSH-võtmega sisselogimine on paroolist turvalisem: võtit ei ole võimalik jõuga ära arvata ja sisselogimine toimub ilma saladust sisestamata. Seadistus koosneb kolmest sammust: genereeri võti, kopeeri see serverisse, lülita parool välja. Vaatame kõik läbi.

Kuidas SSH-võtmed töötavad

Võti koosneb failipaarist: privaatvõti (hoiad ainult sina) ja avalik võti (pannakse serverisse). Ühendumisel kontrollib server, et sul on avalikule võtmele vastav privaatvõti — ilma saladust ennast edastamata.

Samm 1. Genereeri võtmepaar

Käivita oma arvutis (mitte serveris):

ssh-keygen -t ed25519 -C "my-laptop"

ed25519 on kaasaegne ja kiire algoritm. Kui klient on vana, kasuta RSA-d:

ssh-keygen -t rsa -b 4096 -C "my-laptop"

Programm küsib asukohta (vaikimisi ~/.ssh/id_ed25519) ja paroolifraasi. Paroolifraas kaitseb võtit juhuks, kui fail varastatakse — soovitame selle määrata.

Tulemuseks tekib kaks faili:

  • ~/.ssh/id_ed25519 — privaatvõti (ära kellelegi anna);
  • ~/.ssh/id_ed25519.pub — avalik võti.

Samm 2. Kopeeri võti serverisse

Lihtsaim viis on utiliit ssh-copy-id:

ssh-copy-id deploy@SINU_IP

See küsib ühe korra kasutaja parooli ja lisab sinu avaliku võtme serveris faili ~/.ssh/authorized_keys.

Kui ssh-copy-id pole saadaval (näiteks Windowsis), kopeeri võti käsitsi:

cat ~/.ssh/id_ed25519.pub | ssh deploy@SINU_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Samm 3. Kontrolli võtmega sisselogimist

Logi välja ja ühenda uuesti:

ssh deploy@SINU_IP

Kui sisselogimine õnnestus ilma parooliküsimuseta (või küsiti ainult võtme paroolifraasi), siis kõik töötab. Ära lülita parooli välja enne, kui oled veendunud, et võti toimib.

Samm 4. Lülita parooliga sisselogimine välja

Ava SSH-serveri seadistusfail:

sudo nano /etc/ssh/sshd_config

Leia parameetrid ja vii need sellisele kujule:

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

Salvesta fail ja taaskäivita teenus:

sudo systemctl restart ssh

Osal süsteemidest kannab teenus nime sshd — siis sudo systemctl restart sshd.

Failiõigused

SSH kontrollib õigusi rangelt. Kui võtmega sisselogimine ei tööta, kontrolli:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Kokkuvõtlik kontrollnimekiri

Samm Käsk
Genereeri võti ssh-keygen -t ed25519
Kopeeri serverisse ssh-copy-id user@ip
Kontrolli sisselogimist ssh user@ip
Lülita parool välja PasswordAuthentication no
Taaskäivita SSH systemctl restart ssh

Korduma kippuvad küsimused

Mida teha, kui kaotasin privaatvõtme? Seda ei saa taastada. Ühenda serveri juhtpaneelis KVM-konsooli kaudu, lisa faili authorized_keys uus avalik võti ja kustuta vana.

Kas ühte võtit tohib kasutada mitmes serveris? Jah, avaliku võtme võib lisada suvalisele arvule serveritele. Privaatvõti jääb seejuures üheks ja hoiad seda ise.

Kuidas lisada teise arvuti võti? Genereeri teises seadmes võtmepaar ja lisa selle avalik võti eraldi reana faili authorized_keys. Iga võti on eraldi real.

Kas parooli täielik väljalülitamine on turvaline? Jah, see on soovitatav praktika: nii kaob paroolide äraarvamise võimalus. Peamine on säilitada varuligipääs KVM-konsooli kaudu juhuks, kui võti kaob.

Kokkuvõte

Võtmega sisselogimine eemaldab peamise nõrga koha — parooli äraarvamise. Pärast seadistamist ja PasswordAuthentication väljalülitamist muutub server märgatavalt turvalisemaks ja sisselogimine kiiremaks.

Tahad oma serveris harjutada? Võta Linuxi VPS, vali pakett jaotisest VPS-i rent või usalda seadistus jaotisele Serverite haldus.

Kristaps Bērziņš