SSH raktų nustatymas ir slaptažodžio išjungimas — vadovas
chmod teisių skaičiuoklė
chmod.| Skaitymas (r) | Rašymas (w) | Vykdymas (x) | |
|---|---|---|---|
| Savininkas | |||
| Grupė | |||
| Kiti |
chmod 644 failasPrisijungimas 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.