Quasi ogni nuovo VPS inizia allo stesso modo: entri come root, installi un paio di cose e un mese dopo sei ancora root. Funziona finché uno script incollato non cancella la cartella sbagliata. Configurare un utente normale con sudo richiede cinque minuti, e l'ordine conta più dei comandi: sbagli l'ordine e resti chiuso fuori.
Ecco la sequenza sicura per Ubuntu 22.04/24.04 e Debian 12.
1. Crea l'utente
Come root:
adduser deploy
usermod -aG sudo deploy
adduser chiede una password e qualche dato facoltativo (basta premere Invio). Scegli una password vera: la digiterai per sudo. Su un'immagine Debian minimale, esegui prima apt install -y sudo se il comando manca.
2. Dagli la tua chiave SSH
Il modo più semplice è copiare le chiavi autorizzate di root mantenendo il proprietario corretto:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
Se preferisci farlo a mano:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
Permessi sbagliati sono il motivo classico per cui il login con chiave fallisce in silenzio. SSH ignora un authorized_keys scrivibile da altri utenti.
3. Prova prima di cambiare qualcosa
Tieni aperta la sessione di root. In un terminale nuovo:
ssh -p 22 deploy@203.0.113.10
sudo whoami
Usa il tuo IP e la tua porta — su un piano NAT è la porta SSH personale dell'area clienti. Se sudo whoami stampa root, sei a posto. Se il login fallisce, hai ancora la finestra di root per sistemare.
4. Disattiva il login di root
Ora chiudi la porta. Crea un piccolo file drop-in invece di modificare la configurazione principale:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t controlla prima la sintassi. Una configurazione rotta più un reload è il modo in cui si finisce a dover usare la console. PasswordAuthentication no ha senso solo quando il login con chiave funziona per il nuovo utente — cosa che hai appena verificato.
Apri un altro terminale e conferma che root viene rifiutato e che deploy entra ancora. Poi chiudi la vecchia sessione di root.
5. Facoltativo: sudo senza password per l'automazione
Se uno script di deploy ha bisogno di sudo senza richiesta, concedigli esattamente quello e niente di più:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
Diciamolo: NOPASSWD: ALL è allettante, ma significa che una chiave rubata equivale a root. Limitalo ai comandi che l'automazione esegue.
Se qualcosa va storto
La console web nell'area clienti non dipende da SSH né dal firewall. Entra da lì, correggi il file in /etc/ssh/sshd_config.d/, fai il reload, fatto. Abbiamo descritto tutta la procedura di recupero in come rientrare in un VPS da cui sei rimasto chiuso fuori.
Cosa fare dopo
- Passa davvero al login solo con chiave: autenticazione con chiave SSH.
- Riduci il rumore dei tentativi di forza bruta: fail2ban.
- Completa le basi con la checklist di sicurezza per un nuovo VPS.
Le opzioni di accesso di ogni piano sono nella documentazione sull'accesso. Anche un Nano da $3 merita un utente non root: è il miglioramento di sicurezza più economico che esista.
Commenti
Ancora nessun commento. Sii il primo.