Configurazione client e server SSH per accesso senza password
Client
Configura il tuo client SSH in modo tale da poter effettuare l'accesso senza dover inserire la password dell'utente remoto. Necessario in ambienti dove l'accesso tramite password non è consentito.
1. Genera keypair
È necessario creare una coppia di chiavi (keypair). Esegui il seguente comando per creare una coppia di chiavi con crittografia RSA 4096:
ssh-keygen -t rsa -b 4096Verranno richiesti i seguenti parametri:
- File in cui salvare la chiave: Mantieni il valore default (esempio:
/home/user/.ssh/id_rsa) - Password da usare per la chiave: Inserisci una password sicura. Puoi anche inserire una password vuota (non consigliato).
2. Configura .ssh/config
Il file ~/.ssh/config contiene tutte le configurazioni dei tuoi host, permettendoti di non dover inserire nome utente e indirizzo IP/hostname ogni volta che vuoi accedere ad un host. Modifica questo file con un editor di testo, ed inserisci le seguenti righe:
Host server
User user
HostName 100.0.10.2Imposta i parametri in grassetto in questo modo:
- Host: Il nome mnemonico che verrà usato ogni volta che vorrai connetterti all'host. In questo caso:
ssh server - User: Il nome dell'utente remoto.
- HostName: L'indirizzo IP o l'hostname dell'host remoto. È possibile inserire indirizzi IP (
100.0.10.2), hostname (myserver), o nomi di dominio (example.com).
3. Copia la chiave all'host
Esegui il seguente comando:
ssh-copy-id serverInserisci la password dell'utente remoto, e non la password della tua chiave. Se tutto è andato a buon fine, eseguendo il comando qui sotto dovresti poter accedere al server:
ssh serverSe non riesci ad accedere al server tramite ssh, ma puoi modificare i contenuti sul disco, puoi copiare la tua chiave pubblica sul tuo server, dentro il file ~/.ssh/authorized_keys, con il seguente formato:
ssh-rsa AAAA... user@hostDove:
- ssh-rsa: Algoritmo di crittografia della chiave (RSA)
- AAAAA...: Chiave pubblica
- user@host: Opzionale; Aiuta ad identificare a chi appartiene la chiave
Server
Configura il tuo server affinchè solo le chiavi SSH possano essere utilizzate per l'autenticazione. Disabilita anche il login all'utente root per una sicurezza maggiore.
1. Modifica /etc/ssh/sshd_config
Modifica la configurazione del server ssh, situata in /etc/ssh/sshd_config, e assicurati che queste opzioni siano impostate nel seguente modo:
# Disable root login
PermitRootLogin no
# Lower login attempt count
MaxAuthTries 3
# Disable password login
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no2. Riavvia sshd
Esegui il seguente comando:
systemctl start sshd # Debian, CentOS, Fedora, RHEL
# OR
service ssh restart # Older Debian & Sysvinit users
# OR
rc-service sshd restart # OpenRC users (Gentoo)Il server ssh verrà riavviato, e la nuova configurazione verrà applicata.

