Permessi Directory .ssh: Configurazioni, Errori e Soluzioni
La directory .ssh
è il cuore delle connessioni sicure SSH, ma errori nei permessi possono bloccare l’accesso o esporre dati sensibili. Questo articolo spiega come:
- Configurare correttamente i permessi della directory
.ssh
e dei suoi file. - Risolvere errori comuni come
ssh permission denied (publickey)
obad permissions .ssh/known_hosts
. - Garantire la sicurezza delle chiavi SSH con best practice.
1. Perché i permessi della directory .ssh
sono critici?
SSH (Secure Shell) richiede che:
- La directory
.ssh
abbia permessi 700 (solo il proprietario o "owner" può leggere/scrivere). - I file
id_rsa
(chiave privata) abbiano permessi 600. - File come
authorized_keys
oknown_hosts
abbiano permessi 644.
Cosa succede se i permessi sono sbagliati?
ssh permission denied (publickey)
: SSH blocca l’accesso per prevenire rischi.error: bad permissions .ssh/known_hosts
: Il file è modificabile da utenti non autorizzati.
2. Come Configurare i Permessi della Directory .ssh
Passo 1: Verifica la struttura della directory
Assicurati che la directory esista nella home dell’utente:
ls -al ~/.ssh
Passo 2: Imposta i permessi corretti
Directory .ssh:
chmod 700 ~/.ssh
Chiave privata (es.
id_rsa
eid_ed25519
):chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/id_ed25519
File
authorized_keys
eknown_hosts
:chmod 644 ~/.ssh/authorized_keys chmod 644 ~/.ssh/known_hosts
Passo 3: Controlla owner e gruppo
La directory e i file devono appartenere all’utente e al gruppo corretto:
sudo chown -R $USER:$GROUP ~/.ssh
3. Riepilogo permessi directory .ssh
Elemento | Esempio | Numerico | Bitwise |
---|---|---|---|
Cartella SSH | ~/.ssh | 700 | drwx------ |
Chiave pubblica | ~/.ssh/id_rsa.pub | 644 | -rw-r--r-- |
Chiave privata | ~/.ssh/id_rsa | 600 | -rw------- |
Configurazione | ~/.ssh/config | 600 | -rw------- |
Cartella Home | ~ | 755 al massimo | drwxr-xr-x al massimo |
4. Risoluzione Errori Comuni
Errore 1: ssh permission denied (publickey)
Cause:
- Permessi troppo aperti sulla directory
.ssh
o sulla chiave privata. - File
authorized_keys
non configurato correttamente.
Fix:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
Errore 2: error: bad permissions .ssh/known_hosts
Causa:
- Il file
known_hosts
ha permessi errati, permessi777
(rwx
) o è scrivibile da altri.
Fix:
chmod 644 ~/.ssh/known_hosts
Errore 3: Problemi con la home directory
Se la directory home
dell’utente ha permessi troppo aperti (es. 777), SSH rifiuterà l’accesso.
Come sistemare i permessi:
chmod 750 ~/
Best Practice per la Sicurezza SSH
- Usa
ssh-keygen -t ed25519
per generare chiavi crittograficamente robuste, con crittografia ellittica. - Evita permessi 777 su qualsiasi file o cartella, soprattutto se collegata a SSH.
- Automatizza i controlli con script Bash o strumenti come Ansible.
FAQ
Q1: Perché la directory .ssh
deve avere permessi 700?
R: Permessi 700 garantiscono che solo il proprietario possa accedere alla directory, prevenendo letture non autorizzate.
Q2: Come verificare i permessi con ssh -v
?
R: Usa ssh -v user@host
per debug dettagliato. L’output mostrerà errori come Permissions 0644 for 'id_rsa' are too open
.
Q3: Cosa fare se non ho i permessi di root?
R: Contatta l’amministratore di sistema o utilizza chown
e chmod
con i privilegi dell’utente corrente.