−25%

su Windows con pagamento annuale, fino al 31/10. Vai ai piani

EQVPS
Inizia

Come creare un utente sudo su un VPS e smettere di usare root

Crea un utente sudo non root su Ubuntu o Debian, dagli la tua chiave SSH, provalo e poi disattiva il login di root — in un ordine che non ti chiude fuori.

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

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.

FAQ

Perché non continuare a usare root?

Tutto ciò che esegui come root può rompere l'intero sistema, anche un errore di battitura. I bot provano per primo il nome utente 'root', quindi disattivarne il login toglie il bersaglio più tentato. Un utente con nome più sudo ti dà una pausa prima di ogni comando privilegiato e un registro di ciò che è stato eseguito.

E se resto chiuso fuori?

Usa la console web nella tua area clienti. Funziona anche quando SSH è rotto o il firewall ti blocca, così puoi entrare e correggere sshd_config. È anche il motivo per cui provi il nuovo utente prima di chiudere la sessione di root.

Conviene sudo senza password?

Per un account personale, tieni la richiesta di password: è l'ultima linea di difesa se la chiave SSH trapela. Il sudo senza password ha senso per un utente di deploy usato dall'automazione, limitato ai comandi che gli servono davvero.

Sul mio server Debian il comando sudo non esiste. Perché?

Le immagini Debian minimali non sempre lo includono. Installalo come root con 'apt install -y sudo', poi aggiungi il tuo utente al gruppo sudo.

Quale porta SSH uso?

Quella indicata nell'area clienti. I piani con IP dedicato usano la porta 22 sul tuo IP; i piani NAT usano la tua porta SSH personale.

Commenti

Ancora nessun commento. Sii il primo.

Lascia un commento

I commenti sono moderati prima di comparire.