Nozioni di base
Il server SSH ha diversi modi per autenticare un client che si connette ad esso. Il metodo più popolare è l'autenticazione basata su password in quanto è il più semplice, tuttavia non è così sicuro. Le password vengono scambiate con meccanismi sicuri, tuttavia, a causa della facilità d'uso, generalmente non sono complesse o lunghe. Ciò consente all'attaccante di violare la password utilizzando attacchi di forza bruta o dizionario. In tali scenari, le chiavi SSH possono fornire un mezzo di autenticazione sicuro e affidabile per i client.
Il server SSH utilizza uno schema di crittografia a chiave pubblica per autenticare gli utenti. In questo schema vengono generate una coppia di chiavi, una chiave pubblica e una chiave privata, per l'autenticazione. Come suggerisce il nome, una chiave privata viene tenuta segreta dal client poiché la sua compromissione può portare qualcuno ad accedere al server senza alcuna autenticazione aggiuntiva.
La chiave pubblica corrispondente per la chiave privata segreta del client non viene mantenuta come segreta e viene copiata nei sistemi a cui l'utente accede. La chiave privata viene utilizzata per decrittografare il messaggio crittografato utilizzando la chiave pubblica associata del client. Utilizzando la coppia di chiavi, possiamo anche abilitare l'autenticazione senza password. La chiave pubblica attendibile del client è archiviata in un file speciale denominato authorized_keys nella home directory dell'account utente.
Quando un client tenta di autenticare il server SSH utilizzando le chiavi, viene emessa una richiesta utilizzando la chiave pubblica del client archiviata nel server. Dopo aver decrittografato con successo la sfida utilizzando la chiave privata del client, l'utente ottiene l'accesso alla shell del server.
Configura l'autenticazione della sola chiave pubblica per ssh
1. Come root, modifica il file di configurazione del demone sshd (/etc/ssh/sshd_config ).
2. Modificare i parametri PermitRootLogin e PubkeyAuthentication in modo che abbiano i seguenti valori:
PermitRootLogin without-password PubkeyAuthentication yes
Consenti solo l'accesso ssh basato su chiave nell'account root impostando il valore PermitRootLogin della direttiva su senza password come mostrato sopra.
3. Verifica che la sintassi del file di configurazione sshd_config sia corretta prima di riavviare sshd deamon.
# sshd -t
Il comando precedente non dovrebbe restituire nulla. Ciò significa che il file di configurazione è sintatticamente corretto e sei sicuro di riavviare il demone sshd senza alcun problema.
4. Riavvia il demone sshd:
# service sshd restart
o
# systemctl restart sshd