Kapitel 3 · 3.2
Stäng av inloggning med lösenord och som root
Varje server på internet får snart besök av program som gissar lösenord. Om du bara kan logga in med en nyckel har de ingen chans. Det slår du på nu.
Obs: Fungerar inloggningen med din nyckel som anna (se En egen användare med sudo)? Ta då först en snapshot (se Snapshots: ett skyddsnät inför varje stor ändring) och håll en session öppen medan du gör de här stegen. Går något ändå fel kommer du in via konsolen (se Konsolen: din VPS i webbläsaren).
En egen inställningsfil
På Debian och Ubuntu läser SSH-servern först filerna i /etc/ssh/sshd_config.d/, i alfabetisk ordning. För varje inställning gäller det första värdet den hittar. Därför ger du din egen fil ett namn som hamnar först:
anna@web1:~$ sudo nano /etc/ssh/sshd_config.d/00-eigen.conf
Skriv in:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PasswordAuthentication no: inga lösenord längre via SSH.KbdInteractiveAuthentication no: ingen lösenordsfråga via en omväg heller.PermitRootLogin no: root får inte längre logga in via SSH, inte ens med en nyckel. Du arbetar som anna med sudo. Vill du fortfarande tillåta root med en nyckel använder duprohibit-password.
Kontrollera och tillämpa
anna@web1:~$ sudo sshd -t
anna@web1:~$ sudo sshd -T | grep -Ei '^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)'
passwordauthentication no
kbdinteractiveauthentication no
permitrootlogin no
anna@web1:~$ sudo systemctl restart ssh
sshd -t säger ingenting om filen är korrekt. sshd -T visar vilka värden som faktiskt gäller. Står det fortfarande passwordauthentication yes? Då slår en annan fil i sshd_config.d på det igen, ofta 50-cloud-init.conf. Din 00-eigen.conf kommer före och vinner, så kontrollera att namnet är rätt.
På AlmaLinux och Rocky Linux heter tjänsten sshd: sudo systemctl restart sshd.
Testa innan du stänger sessionen
Öppna ett nytt fönster och prova:
ssh anna@203.0.113.10
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no anna@203.0.113.10
anna@203.0.113.10: Permission denied (publickey).
ssh root@203.0.113.10
root@203.0.113.10: Permission denied (publickey).
Det första ska fungera. De andra två ska nekas. Stämmer allt? Ta då bort din snapshot.
Tips: Ett annat portnummer än 22 ger en lugnare logg, men gör inte din server säkrare. Det är nyckeln som gör jobbet. Byter du ändå port ska du först öppna den i brandväggen (se En brandvägg med ufw (eller nftables)).
