Så säkrar du SSH på en Linux-VPS
En publik VPS får automatiserade inloggningsförsök inom några minuter efter att den har startats. Stegen nedan gör SSH betydligt svårare att attackera. De är skrivna för Ubuntu eller Debian. Om du inte har skapat någon server än kan du hyra en Linux-VPS och börja från en ren avbildning. Behåll din nuvarande SSH-session öppen tills du har testat de nya inställningarna från ett andra fönster.
1. Skapa en vanlig användare med sudo
adduser deploy
usermod -aG sudo deploy2. Använd SSH-nycklar i stället för lösenord
På din egen dator:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPLogga in en gång med nyckeln för att bekräfta att den fungerar innan du stänger av lösenordsinloggning.
3. Stäng av lösenords- och root-inloggning
Skapa /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Kontrollera syntaxen och ladda om tjänsten. Tjänsten heter ssh på Ubuntu och Debian och sshd på RHEL-baserade system:
sudo sshd -t && sudo systemctl reload sshÖppna en andra terminal och logga in igen. Stäng först därefter den gamla sessionen.
4. Aktivera en brandvägg
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseÖppna bara de portar du behöver, till exempel 80 och 443 för en webbserver. Du kan dessutom begränsa SSH till din egen IP-adress med en brandväggsregel i molnkonsolen.
5. Blockera upprepade misslyckanden med Fail2ban
sudo apt install -y fail2banSkapa /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Installera säkerhetsuppdateringar automatiskt
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Valfria tillägg
- Att byta SSH-port minskar bruset i loggarna men är inte en säkerhetsåtgärd i sig.
- Skydda den privata nyckeln med en lösenfras och förvara en säkerhetskopia på en säker plats.
- Granska inloggningar med
lastochsudo journalctl -u ssh --since today. - Ta en snapshot när servern är konfigurerad, så att du kan återställa en ren utgångspunkt.
Om du blir utelåst kan du använda webbläsarkonsolen i din molnpanel för att logga in och rätta konfigurationen. Vår guide om DDoS-skydd täcker nästa skyddslager.
Vanliga frågor
Is it safe to disable root login?
Yes, if you first create a sudo user and test that its key works. You can still run administrative commands with sudo.
Do I need Fail2ban if I use keys only?
It is optional. With password login disabled, brute force cannot succeed, but Fail2ban reduces log noise and load.
What if I lose my SSH key?
Use the console in your cloud panel to log in, add a new public key to ~/.ssh/authorized_keys and remove the old one.