
Prihlasovanie do servera cez SSH kľúče je základom bezpečnosti. Heslá sú náchylné na „brute-force“ útoky, zatiaľ čo dobre zabezpečený kľúč je prakticky neprekonateľný.
1. Generovanie kľúča na lokálnom počítači
Prvým krokom je vytvorenie páru kľúčov (súkromný a verejný) na tvojom počítači (klientovi).
Otvorte terminál a zadajte:
ssh-keygen -t ed25519 -C "moj_pc"
- Prečo ed25519? Je modernejší, kratší a bezpečnejší ako staršie RSA.
- Passphrase: Keď sa vás systém opýta na heslo (passphrase), zadajte ho. Je to dodatočná vrstva ochrany – ak vám niekto ukradne počítač alebo získa prístup k úložisku či súboru, bez hesla kľúč nepoužije.
Výsledok: V priečinku ~/.ssh/ vzniknú dva súbory:
id_ed25519(Súkromný kľúč – NIKDY ho nikomu neposielajte!)id_ed25519.pub(Verejný kľúč – tento pôjde na server.)
2. Prenos kľúča na server
Metóda A: Automaticky (Pomocou ssh-copy-id)
Toto je najjednoduchší spôsob, ak už máte na serveri prístup cez heslo.
ssh-copy-id -i ~/.ssh/id_ed25519.pub uzivatel@ip_adresa_servera
Príkaz vás vyzve na zadanie hesla k serveru, automaticky vytvorí potrebné priečinky a nastaví správne povolenia.
Metóda B: Manuálne (Keď nefunguje heslo alebo automatika)
Ak máte na server prístup iným spôsobom (napr. cez webovú konzolu), môžte kľúč vložiť aj ručne.
- Zobrazte si verejný kľúč na svojom PC:
cat ~/.ssh/id_ed25519.pub
Skopírujte celý výstup (začína sassh-ed25519 ...). - Na serveri ho pridajte do zoznamu:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
Prilepte kľúč na nový riadok, uložte (Ctrl+O) a zavrite (Ctrl+X). - Nastavte správne práva na serveri:
chmod 600 ~/.ssh/authorized_keys
Tu je celý príkaz aj s opravou oprávnení pre prípad, že ste niečo vytvárali ručne ako root či iný užívateľ. Nezabudnite zmeniť UZIVATEL za meno vášho užívateľa:
# Oprava práv (zákaz zápisu pre group a others)
chmod 750 /home/UZIVATEL
chmod 700 /home/UZIVATEL/.ssh
chmod 600 /home/UZIVATEL/.ssh/authorized_keys
# Nastavíme práva radikálne
chown -R UZIVATEL:UZIVATEL /home/UZIVATEL/.ssh
chown -R UZIVATEL:UZIVATEL /home/UZIVATEL/
V prípade SELinuxov bude treba použiť príkaz, ktorý je špecifický pre systémy so zapnutým Security-Enhanced Linux (SELinux), ako sú napr. Oracle Linux, RHEL, CentOS alebo Fedora.
# Ak je to Oracle Linux, toto je kľúčové:
chcon -R -t ssh_home_t /home/uzivatel/.ssh 2>/dev/null || true
3. Najčastejšie chyby (Troubleshooting)
Chyba: „Permission denied (publickey)“
- Zlé práva (najčastejšia príčina): SSH server odmietne kľúč, ak sú práva k priečinku
.sshalebo súboruauthorized_keyspríliš otvorené. Musia byť striktne700pre priečinok a600pre súbor. - Zlý súbor: Uistite sa, že na server kopírujete obsah
.pubsúboru, nie súkromného kľúča. - Vlastník: Priečinok a súbor musí vlastniť užívateľ, pod ktorým sa prihlasujete (
chown -R uzivatel:uzivatel ~/.ssh).
Chyba: „Connection closed [preauth]“
- Zalomený riadok: V súbore
authorized_keysmusí byť každý kľúč na jednom samostatnom riadku. Ak editor kľúč rozdelil na dva riadky, nebude fungovať. - SELinux (Oracle Linux/CentOS): Ak používate tieto distribúcie, po manuálnom vložení spustite:
restorecon -Rv ~/.ssh.
4. Bonus: SSH Config pre pohodlie
Namiesto vypisovania ssh uzivatel@192.168.x.x si vytvorte skratku. Na svojom PC upravte súbor ~/.ssh/config:
Plaintext
Host moj_server
HostName 192.168.1.1
User UZIVATEL
IdentityFile ~/.ssh/id_ed25519
Teraz sa prihlásite jednoducho príkazom: ssh moj_server.
Záverečné odporúčanie
Keď vám kľúče fungujú, vypnite prihlasovanie heslom v súbore /etc/ssh/sshd_config
Nastavte parameter PasswordAuthentication no. Tým zvýšite bezpečnosť servera o 500 %.
Je možné, že budete potrebovať práva root na zmenu tohto súboru. Prihláste sa ako root sudo -i alebo použite príkaz sudo pred príkazom na editáciu.