creazione e gestione di chiavi SSH

This commit is contained in:
dado
2025-07-08 21:34:00 +02:00
parent 09ab62d111
commit 5224b51c66

View File

@@ -20,10 +20,10 @@ Questo modulo gestisce le sessioni e la comunicazione client/server all'interno
### User Authentication Protocol
Questo modulo si occupa dell'autenticazione degli utenti, implementando diversi metodi:
Questo modulo si occupa dell'**autenticazione degli utenti**, implementando diversi metodi:
- **Username/password**
- **Chiave pubblica**: lato client, viene sempre utilizzata la crittografia asimmetrica. Il client genera una coppia di chiavi (pubblica e privata) e memorizza la chiave pubblica nel file `.ssh/authorized_keys` del server. Durante il processo di autenticazione, il server crea un messaggio randomico, cifrato con la chiave pubblica del client, e lo invia a quest'ultimo. Solo il client, utilizzando la sua chiave privata, putrá decifrare il messaggio. Se il messaggio decifrato corrisponde a quello inviato, il server può confermare l'identità del client, a meno che la chiave privata non sia stata compromessa
- Autenticazione classica con **username/password**
- Autenticazione tramite **chiave pubblica**: lato client, viene sempre utilizzata la crittografia asimmetrica. Il client genera una coppia di chiavi (pubblica e privata) e memorizza la chiave pubblica nel file `.ssh/authorized_keys` del server. Durante il processo di autenticazione, il server crea un messaggio randomico, cifrato con la chiave pubblica del client, e lo invia a quest'ultimo. Solo il client, utilizzando la sua chiave privata, putrá decifrare il messaggio. Se il messaggio decifrato corrisponde a quello inviato, il server può confermare l'identità del client, a meno che la chiave privata non sia stata compromessa
### Transport Layer Protocol
@@ -50,3 +50,27 @@ systemctl status ssh.service # Verifica lo stato del servizio SSH
systemctl start ssh.service # Avvia il servizio SSH
systemctl stop ssh.service # Ferma il servizio SSH
```
## Creazione e gestione di chiavi SSH
Le chiavi generate lato server e utilizzate nel processo di validazione dell'identità si trovano nella directory `/etc/ssh` del server. In particolare:
```bash
> ll /etc/ssh/
Permissions Size User Group Date Modified Name
.rw------- 505 root root 4 Jan 15:46 ssh_host_ecdsa_key
.rw-r--r-- 173 root root 4 Jan 15:46 ssh_host_ecdsa_key.pub
.rw------- 399 root root 4 Jan 15:46 ssh_host_ed25519_key
.rw-r--r-- 93 root root 4 Jan 15:46 ssh_host_ed25519_key.pub
.rw------- 2.6k root root 4 Jan 15:46 ssh_host_rsa_key
.rw-r--r-- 565 root root 4 Jan 15:46 ssh_host_rsa_key.pub
```
Quando un client si connette per la prima volta a un server tramite SSH, poiché non ha ancora chiavi associate a questo target nel file `known_hosts`, situato nella directory `~/.ssh`, viene richiesto di accettare e memorizzare il fingerprint, che corrisponde alle chiavi pubbliche del server.
Per ulteriori informazioni sulla creazione e gestione delle chiavi lato client, riferirsi all'articolo [Creazione e gestione di chiavi SSH](https://www.novemila.org/posts/2024-07-06-ssh/).
I permessi consigliati per garantire la sicurezza delle chiavi SSH e delle configurazioni associate sono i seguenti:
- `.ssh`: 700
- `authorized_keys`: 600