Ako na SSH kľúče

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:

  1. id_ed25519 (Súkromný kľúč – NIKDY ho nikomu neposielajte!)
  2. 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.

  1. Zobrazte si verejný kľúč na svojom PC:
    cat ~/.ssh/id_ed25519.pub
    Skopírujte celý výstup (začína sa ssh-ed25519 ...).
  2. 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).
  3. 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 .ssh alebo súboru authorized_keys príliš otvorené. Musia byť striktne 700 pre priečinok a 600 pre súbor.
  • Zlý súbor: Uistite sa, že na server kopírujete obsah .pub sú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_keys musí 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.