Esistono 2 metodi per accedere a SSH, uno è basato su password e l'altro è basato su chiave. L'autenticazione basata su chiave SSH ha lo scopo di fornire un modo sicuro per accedere a un server con chiave privata e pubblica.
In questa guida imparerai i seguenti modi per proteggere la tua macchina Debian.
- Crea nuovo utente con privilegi sudo
- Disabilita l'autenticazione basata su password
- Genera chiavi SSH
- Configura la chiave SSH per l'utente
- Disabilita la richiesta della password durante l'utilizzo di sudo
Fase 1:crea un nuovo utente
Puoi saltare questo se hai già creato l'utente.
Crea un nuovo utente con password disabilitata utilizzando il seguente comando.
sudo adduser username --disabled-password
Segui le istruzioni e conferma con Y
, che crea l'utente con la directory home dell'utente in /home/username
.
Concedi l'accesso sudo al nuovo utente
Aggiungi il nuovo utente al gruppo sudo in modo che l'utente disponga dei privilegi di amministratore per eseguire i comandi.
sudo usermod -aG sudo username
Ora hai un nuovo utente con diritti sudo e password disabilitati.
Passaggio 2:Disattiva l'autenticazione tramite password per l'utente
Modifica il /etc/ssh/sshd_config
per configurare l'autenticazione.
sudo nano /etc/ssh/sshd_config
Aggiungi quanto segue all'ultimo.
Match User username PasswordAuthentication no
Salva il file e riavvia SSH.
sudo systemctl restart ssh
Ora l'utente non può accedere utilizzando la password.
Fase 3:genera la chiave SSH
Accedi come l'utente che hai creato sopra.
sudo su username
Crea un nuovo .ssh
directory per tenere i tasti ssh e navigare al suo interno.
Non usare sudo qui dentro.
mkdir .ssh cd .ssh
Crea chiavi SSH.
ssh-keygen -m PEM -t rsa -b 4096 -C "your_email"
Qui ho usato PEM
formato per generare una chiave basata su RSA. Se il -m PEM
viene rimosso potrebbe generare la chiave OpenSSH.
Quando richiesto, fornisci il nome della chiave.
Salta la passphrase e completa la configurazione.
Ora dovresti avere 2 file all'interno della tua directory .ssh.
filename.pub filename
Il filename.pub è la tua chiave pubblica e il filename è la tua chiave privata.
Fase 4:configura la chiave SSH per l'accesso SSH.
Per consentire la connessione SSH devi aggiungere la chiave pubblica al authorized_keys
file.
cat filename.pub >> authorized_keys
Questo comando creerà un file chiamato authorized_keys
e aggiungi il contenuto della chiave pubblica.
Copia il contenuto della chiave privata, puoi fare l'autenticazione al server usando questo.
cat filename
Questo comando restituisce il contenuto della tua chiave privata. Salvalo per l'autenticazione.
Passaggio 5:disabilita la richiesta della password durante l'utilizzo di sudo
Per impostazione predefinita, quando esegui comandi basati su sudo con un altro utente, il sistema richiede di inserire la password per l'utente.
Poiché non utilizziamo la password, dobbiamo disabilitarla.
Esci dalla shell utente e torna alla shell di root.
Esegui il comando per inserire visudo
.
sudo visudo
Aggiungi quanto segue all'ultimo.
username ALL=(ALL) NOPASSWD: ALL
Salva il file ed esci.
Questo è tutto. Ora hai un utente che può accedere solo utilizzando le chiavi SSH.