SSH raktų nustatymas ir slaptažodžio išjungimas — vadovas

chmod teisių skaičiuoklė

Pažymėkite teises arba įveskite aštuntainį skaičių — gausite simbolinį užrašą ir komandą chmod.
Skaitymas (r)Rašymas (w)Vykdymas (x)
Savininkas
Grupė
Kiti
Simboliaisrw-r--r--
chmod 644 failas

Prisijungimas SSH raktais patikimesnis už slaptažodį: rakto neįmanoma atspėti perrinkimu, o prisijungiama neįvedant paslapties. Nustatymas užima tris žingsnius: sugeneruoti raktą, nukopijuoti jį į serverį, išjungti slaptažodį. Aptarsime kiekvieną.

Kaip veikia SSH raktai

Raktą sudaro dviejų failų pora: privatus (saugomas tik pas jus) ir viešasis (padedamas serveryje). Jungiantis serveris patikrina, ar turite privatų raktą, atitinkantį viešąjį, — pačios paslapties neperduodant.

1 žingsnis. Sugeneruokite raktų porą

Savo kompiuteryje (ne serveryje) įvykdykite:

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

ed25519 — šiuolaikinis ir greitas algoritmas. Jei klientas senas, naudokite RSA:

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

Programa paklaus kelio (pagal numatymą ~/.ssh/id_ed25519) ir slaptafrazės. Slaptafrazė apsaugo raktą, jei failas būtų pavogtas, — rekomenduojame ją nustatyti.

Rezultate atsiras du failai:

  • ~/.ssh/id_ed25519 — privatus raktas (niekam neperduodamas);
  • ~/.ssh/id_ed25519.pub — viešasis raktas.

2 žingsnis. Nukopijuokite raktą į serverį

Paprasčiausia — įrankiu ssh-copy-id:

ssh-copy-id deploy@JŪSŲ_IP

Jis vieną kartą paprašys vartotojo slaptažodžio ir įrašys jūsų viešąjį raktą į ~/.ssh/authorized_keys serveryje.

Jei ssh-copy-id neprieinamas (pavyzdžiui, Windows sistemoje), nukopijuokite raktą rankiniu būdu:

cat ~/.ssh/id_ed25519.pub | ssh deploy@JŪSŲ_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3 žingsnis. Patikrinkite prisijungimą raktu

Atsijunkite ir prisijunkite iš naujo:

ssh deploy@JŪSŲ_IP

Jei prisijungėte neprašant slaptažodžio (arba paprašė tik rakto slaptafrazės) — viskas veikia. Neišjunkite slaptažodžio, kol neįsitikinote, kad raktas veikia.

4 žingsnis. Išjunkite prisijungimą slaptažodžiu

Atidarykite SSH serverio konfigūraciją:

sudo nano /etc/ssh/sshd_config

Suraskite ir nustatykite tokias parametrų reikšmes:

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

Išsaugokite failą ir perkraukite tarnybą:

sudo systemctl restart ssh

Kai kuriose sistemose tarnyba vadinasi sshd — tada sudo systemctl restart sshd.

Failų teisės

SSH griežtai tikrina teises. Jei prisijungimas raktu neveikia, patikrinkite:

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

Galutinis kontrolinis sąrašas

Žingsnis Komanda
Sugeneruoti raktą ssh-keygen -t ed25519
Nukopijuoti į serverį ssh-copy-id user@ip
Patikrinti prisijungimą ssh user@ip
Išjungti slaptažodį PasswordAuthentication no
Perkrauti SSH systemctl restart ssh

Dažni klausimai

Ką daryti, jei praradau privatų raktą? Atkurti jo neįmanoma. Prisijunkite per KVM konsolę serverio valdymo skydelyje, į authorized_keys įrašykite naują viešąjį raktą, o seną ištrinkite.

Ar galima naudoti vieną raktą keliuose serveriuose? Taip, viešąjį raktą galima įrašyti į bet kokį skaičių serverių. Privatus lieka vienas ir saugomas pas jus.

Kaip pridėti antro kompiuterio raktą? Sugeneruokite porą antrame įrenginyje ir įrašykite jo viešąjį raktą atskira eilute į authorized_keys. Kiekvienas raktas — sava eilutė.

Ar saugu visiškai išjungti slaptažodį? Taip, tai rekomenduojama praktika: ji panaikina slaptažodžio perrinkimą. Svarbiausia — išsaugoti atsarginę prieigą per KVM konsolę tam atvejui, jei prarastumėte raktą.

Apibendrinimas

Prisijungimas raktais pašalina pagrindinį pažeidžiamumą — slaptažodžio perrinkimą. Nustačius raktus ir išjungus PasswordAuthentication serveris tampa pastebimai saugesnis, o prisijungimas — greitesnis.

Norite pasitreniruoti savo serveryje? Pasirinkite Linux VPS, užsisakykite VPS nuomą arba patikėkite konfigūravimą skyriuje Serverių administravimas.

Kristaps Bērziņš