Skip to content
VDS · Zabezpečenie

Zabezpečenie SSH: kľúče, port, obmedzenia

Ako nastaviť sshd: prihlásenie len kľúčom, obmedzenie používateľov a adries, zmena portu a ako pritom nestratiť prístup.

Aktualizované 23. augusta 2026

SSH je jediné dvere do stroja, ktorý používaš každý deň, a hlavný terč automatizovaných brute-force útokov. Nakonfiguruješ ho raz a potom už nevyžaduje pozornosť.

Všetky úpravy rob v samostatnom súbore /etc/ssh/sshd_config.d/99-hardening.conf — takto ti aktualizácia balíka neprepíše prácu a neostaneš bez prístupu.

Kľúče namiesto hesiel

PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no

Pred aplikovaním sa uisti, že kľúč naozaj funguje: prihlás sa s ním v samostatnom okne. Kľúče pridané v karte „Access“ v paneli /hosting/vds/m/<id> idú používateľovi root; pre ostatných používateľov ich musíš vložiť do ~/.ssh/authorized_keys ručne.

Generovanie kľúča na tvojej strane:

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

ed25519 je kratší a rýchlejší než RSA. Ak ho tvoj nástroj nepodporuje, použi rsa s dĺžkou aspoň 4096 bitov.

Kto sa môže prihlásiť

PermitRootLogin prohibit-password
AllowUsers artem deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2

AllowUsers je najúčinnejšie pravidlo po vypnutí hesiel: brute-force na cudzie mená sa okamžite zastaví. Viac o rootovi — vypni prihlásenie roota heslom.

Obmedzenie na adresu, ak pracuješ z pevného miesta:

Match Address 203.0.113.5
    PermitRootLogin yes

Zmena portu

Presun SSH z 22 na neštandardný port ťa neochráni pred cieleným útokom, ale z logov odstráni takmer všetok šum od automatizovaných skenerov.

Port 2222

Poradie krokov je striktne takéto:

ufw allow 2222/tcp
sshd -t
systemctl restart ssh
ssh -p 2222 artem@<address>
ufw delete allow 22/tcp

Pravidlo firewallu prichádza pred reštartom a staré odstrániš až po úspešnom prihlásení na novom porte. Pozri aj porty.

Aplikovanie a overenie

sshd -t
sshd -T | grep -Ei "passwordauth|permitroot|allowusers|port"
systemctl restart ssh

sshd -t skontroluje syntax, sshd -T zobrazí výslednú efektívnu konfiguráciu — tú, nie to, čo si napísal do súboru.

Počas konfigurácie si nechaj otvorenú aktuálnu reláciu. Prežije reštart sshd a cez ňu môžeš vrátiť nepodarenú úpravu. Ak sa predsa len zamkneš von — karta „Console“ v paneli funguje nezávisle od SSH.

Časté chyby

ChybaNásledokOprava
Vypnuté heslá bez otestovania kľúčaÚplná strata sieťového prístupuPrihlás sa cez konzolu v paneli a obnov nastavenie
Úprava v hlavnom súbore nad riadkom z sshd_config.dNastavenie neúčinkujeSkontroluj pomocou sshd -T
Zmenený port bez pravidla ufwStrata prístupuNajprv pravidlo, potom port
Práva na ~/.ssh širšie než 700Kľúč sa ticho ignorujechmod 700 ~/.ssh, chmod 600 authorized_keys
AllowUsers bez tvojho vlastného menaZamkneš sa vonKonzola v paneli, uprav súbor

V sshd_config vyhráva prvý výskyt parametra a súbory z sshd_config.d sa vkladajú na začiatok. Preto over výsledok pomocou sshd -T namiesto čítania súboru.

Zvyšný šum z brute-force odstráni fail2ban.