2. modulis · 2.1
SSH atslēgu izveide un lietošana
2. modulis: SSH un atslēgas · Lasīšanas laiks: 10 min.
Mācīšanās mērķis: Pēc šīs nodarbības Jūs varēsiet izveidot atslēgu pāri, ievietot publisko atslēgu savā serverī, pieteikties bez paroles un glabāt privāto atslēgu tā, lai pazaudēts klēpjdators nekļūtu par katastrofu.
Pamatjēdzieni: atslēgu pāris, publiskā atslēga, privātā atslēga, ed25519, RSA, paroles frāze, ssh-agent, ssh-copy-id, authorized_keys, tiesības 700 un 600, atsevišķa atslēga katrai ierīcei, FIDO2 atslēga
Kāpēc atslēgas ir labākas par parolēm
Nodarbībā 1.3 Jūs pieteicāties ar paroli. Tas darbojas, taču serveri internetā jau no pirmās minūtes apmeklē programmas, kas mēģina uzminēt paroles. Ieskatieties jauna servera žurnālā:
root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214Simtiem mēģinājumu stundā ir normāla parādība. Spēcīga parole tos aptur, taču Jūs esat radījuši vājo vietu, kas nav vajadzīga. Ar SSH atslēgu minēšanai nav jēgas: nav nekā, ko varētu uzminēt no vārdu saraksta.
Atslēga sastāv no divām savstarpēji saistītām daļām, atslēgu pāra:
- Privātā atslēga paliek Jūsu datorā. Ikviens, kam ir šis fails (un kas zina paroles frāzi), var pieteikties. Nedodiet to nevienam, arī ne savam pakalpojumu sniedzējam vai palīdzības dienestam.
- Publisko atslēgu Jūs nododat serverim. To drīkst redzēt ikviens: ar to nevar pieteikties, to var izmantot tikai pārbaudei.
Piesakoties serveris nesūta paroli pa līniju. Jūsu dators ar parakstu pierāda, ka tam ir privātā atslēga, un serveris šo parakstu pārbauda ar publisko atslēgu. Pat ja kāds noklausās tīklā, viņš neredz neko, ko vēlāk varētu izmantot atkārtoti.
Atslēgas izveide
Atslēgu izveidojiet savā datorā, nevis serverī. Windows 10 un 11, macOS un Linux jau ietver ssh-keygen. Atveriet PowerShell vai Terminal:
anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026Kas šeit notiek?
-t ed25519izvēlas tipu. Ed25519 ir īss, ātrs un drošs, un kopš OpenSSH 9.5 tas ir arī noklusējuma tips, ja neko nenorādāt. Ja Jums jāapkalpo veca sistēma, kas ed25519 neatpazīst, izmantojiet RSA ar vismaz 3072 bitiem:ssh-keygen -t rsa -b 4096. Vecāki tipi, piemēram, DSA, ir izņemti no OpenSSH; neizmantojiet tos.-Cir tikai komentārs. Ierakstiet tur kaut ko, pēc kā vēlāk redzēsiet, no kuras ierīces ir atslēga. Tas ļoti palīdz, ja atslēga ir jāatsauc.- Paroles frāze šifrē privāto atslēgu Jūsu diskā. Ja klēpjdators tiek nozagts, zaglim ir tikai šifrēts fails. Bez paroles frāzes viņam uzreiz būtu piekļuve visiem Jūsu serveriem.
Tagad Jums ir divi faili:
| Fails | Kas tas ir | Kopīgot? |
|---|---|---|
~/.ssh/id_ed25519 | Privātā atslēga | Nekad |
~/.ssh/id_ed25519.pub | Publiskā atslēga, viena teksta rinda | Jā, uz serveri |
Windows sistēmā tie atrodas C:\Users\anna\.ssh\. Publiskā atslēga ir viena rinda, kas sākas ar ssh-ed25519:
anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026Publiskās atslēgas ievietošana serverī
Serveris meklē publiskās atslēgas tā lietotāja failā ~/.ssh/authorized_keys, ar kuru Jūs piesakāties. Katra rinda ir viena atslēga. Ir trīs veidi, kā tur ievietot savu atslēgu:
1. Instalēšanas laikā. Lielākajai daļai pakalpojumu sniedzēju, izveidojot vai pārinstalējot VPS, ir lauks publiskajai atslēgai. WebOké VPS ekrānā šis lauks saucas "SSH atslēga"; pie citiem pakalpojumu sniedzējiem tas darbojas līdzīgi. Tas ir labākais veids: tad parolei nekad nav jābūt ieslēgtai.
2. Ar ssh-copy-id (macOS un Linux), kamēr pieteikšanās ar paroli vēl darbojas:
anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 13. Manuāli, piemēram, no Windows vai caur pakalpojumu sniedzēja konsoli. Ielīmējiet rindu no sava .pub faila failā authorized_keys un iestatiet pareizas tiesības:
anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keysŠīs tiesības nav sīkums. SSH serveris tās pārbauda (iestatījums StrictModes pēc noklusējuma ir ieslēgts): ja citi drīkst rakstīt Jūsu .ssh mapē vai mājas mapē, serveris Jūsu atslēgas ignorē. Tad Jūs vienkārši atkal redzat paroles pieprasījumu bez skaidra kļūdas ziņojuma. Kā nolasīt tiesības, Jūs uzzināsiet nodarbībā 3.1.
Pēc tam pārbaudiet jaunā logā:
anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$Jautājums tagad nāk no Jūsu datora (Jūsu atslēgas paroles frāze), nevis vairs no servera.
ssh-agent: atbloķēt vienreiz
Katru reizi ievadīt paroles frāzi ir neērti. ssh-agent glabā atbloķēto atslēgu atmiņā, kamēr esat pieteicies savā datorā:
anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)Sistēmā macOS aģents sadarbojas ar atslēgu saiņa (Keychain) funkciju, sistēmā Windows tas ir pakalpojums "OpenSSH Authentication Agent" (vienreiz jāieslēdz sadaļā Pakalpojumi). Tā Jums ir ērtība bez paroles ievadīšanas un tomēr šifrēta atslēga diskā.
Esiet uzmanīgi ar aģenta pārsūtīšanu (ssh -A): ar to serveris, kurā piesakāties, drīkst izmantot Jūsu aģentu. Ikviens, kam šajā serverī ir root tiesības, tad var turpināt darbu ar Jūsu atslēgu. Izmantojiet to tikai serveros, kuriem pilnībā uzticaties, vai izmantojiet ProxyJump (nodarbība 2.3).
Viena atslēga katrai ierīcei un pārskats, kur kura atrodas
Bieža kļūda: viena privātā atslēga tiek nokopēta uz klēpjdatoru, galddatoru un tālruni. Ja pazaudējat vienu ierīci, atslēga ir jāaizstāj visur un visas ierīces jāiestata no jauna. Labāk ir šādi:
- izveidojiet katrā ierīcē savu atslēgu ar skaidru komentāru (
-C "anna@telefoon"); - ievietojiet visas publiskās atslēgas failā
authorized_keys, katru savā rindā; - ja pazaudējat ierīci, izdzēsiet tikai šo vienu rindu.
Regulāri pārbaudiet, kurām atslēgām ir piekļuve:
anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)Ja tur ir atslēga, kuru neatpazīstat, tas ir trauksmes signāls (nodarbība 10.3). Ielauzēji labprāt ievieto savu atslēgu failā authorized_keys, lai vēlāk atgrieztos.
Var izmantot arī aparatūras atslēgu (FIDO2, piemēram, YubiKey). Ar ssh-keygen -t ed25519-sk slepenā daļa atrodas pašā atslēgā, un tai jāpieskaras katrā lietošanas reizē. Nozagts fails tad ir bezvērtīgs. Tas ir labs nākamais solis, taču sākumam nav nepieciešams.
Pazaudēta privātā atslēga?
Ja pazaudējat savu vienīgo privāto atslēgu un pieteikšanās ar paroli ir izslēgta, caur SSH vairs netiksiet iekšā. Tāpēc:
- vienmēr ievietojiet serverī vismaz divas atslēgas (piemēram, klēpjdatora un galddatora);
- ziniet, kā darbojas pakalpojumu sniedzēja konsole (nodarbība 1.2). Tajā Jūs piesakāties tā, it kā serverim būtu pievienota tastatūra, un tas darbojas arī bez SSH. WebOké VPS ekrānā tā saucas Console; citi pakalpojumu sniedzēji to sauc par VNC konsoli, tīmekļa konsoli vai ārkārtas konsoli.
AlmaLinux un Rocky Linux sistēmās
Viss šajā nodarbībā darbojas tāpat. Viens papildu slazds: ja ir ieslēgts SELinux, mapei ~/.ssh jābūt pareizajai drošības iezīmei. Ja izveidojāt vai nokopējāt mapi manuāli un atslēga tiek ignorēta, restorecon -Rv ~/.ssh to izlabo.
Kopsavilkums
- Atslēgu pāris sastāv no privātās atslēgas (paliek pie Jums) un publiskās atslēgas (nonāk serverī, failā
~/.ssh/authorized_keys). - Izveidojiet atslēgas ar
ssh-keygen -t ed25519savā datorā, ar paroles frāzi; ērtībai izmantojiet ssh-agent. - Tiesības ir svarīgas:
~/.sshuz 700 unauthorized_keysuz 600, citādi serveris Jūsu atslēgu ignorē. - Viena atslēga katrai ierīcei ar skaidru komentāru, lai varētu atsaukt tieši vienu.
- Parūpējieties par otru atslēgu un pārziniet pakalpojumu sniedzēja konsoli kā ārkārtas ieeju.
Tests (quiz)
Uzdevums
Uzdevums O2.1: Atslēgas izveide un lietošana. Savā datorā izveidojiet ed25519 atslēgu ar paroles frāzi un skaidru komentāru, ievietojiet to savā serverī (ar pakalpojumu sniedzēja lauku, ssh-copy-id vai manuāli), pārbaudiet tiesības un jaunā logā piesakieties ar atslēgu. Pēc tam ievadiet savas atslēgas pirkstu nospiedumu (no ssh-keygen -lf ~/.ssh/id_ed25519.pub) un atbildiet uz jautājumiem par to, kur atrodas Jūsu privātā atslēga un ko darīsiet, ja to pazaudēsiet. Programma pārbauda tikai to, vai pirkstu nospiedumam ir pareizs formāts; pārējais jāizdara pašiem.
Uzdevums O2.1: Atslēgas izveide un lietošana
Šo uzdevumu veicat paši; neviens to nepārbauda. Atzīmējiet, ko esat izdarījuši, un atzīmējiet uzdevumu kā paveiktu.
Privātā atslēga paliek Jūsu ierīcē, šifrēta ar paroles frāzi, nevis mākoņa mapē vai e-pastā. Zādzības gadījumā izņemiet šīs ierīces rindu no authorized_keys katrā serverī un izveidojiet jaunu atslēgu. Nekad neielīmējiet savu privāto atslēgu, arī ne šeit.
Jūsu atzīmes un piezīmes paliek tikai šajā pārlūkprogrammā; mēs tās nekur nesūtām. Ja esat pieteikušies, sadaļā Mani kursi saglabājam tikai to, ka uzdevums ir paveikts.
Vairāk lasīt
Šo rakstu soļi attiecas uz WebOké VPS ekrānu un paneļiem; pie citiem pakalpojumu sniedzējiem tas darbojas līdzīgi.
- Pieteikšanās Jūsu VPS, izmantojot SSH (un SSH atslēgas izveide)
- DirectAdmin rokasgrāmata 15.2: SSH Keys un pieteikšanās ar SSH
- Vairs nav piekļuves Jūsu VPS: ko darīt tagad?
- ssh-keygen rokasgrāmata: https://man.openbsd.org/ssh-keygen
- OpenSSH 9.5 laidiena piezīmes (ed25519 kā noklusējums): https://www.openssh.org/txt/release-9.5
