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
.sshe 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.
Evita accessi non autorizzati: i nostri esperti Linux configurano SSH per proteggere server e dati critici.
1. Perché i permessi della directory .ssh sono critici?
SSH (Secure Shell) richiede che:
- La directory
.sshabbia permessi 700 (solo il proprietario o "owner" può leggere/scrivere). - I file
id_rsa(chiave privata) abbiano permessi 600. - File come
authorized_keysoknown_hostsabbiano 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 ~/.sshChiave privata (es.
id_rsaeid_ed25519):chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/id_ed25519File
authorized_keyseknown_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 ~/.ssh3. 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
.ssho sulla chiave privata. - File
authorized_keysnon configurato correttamente.
Fix:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsaErrore 2: error: bad permissions .ssh/known_hosts
Causa:
- Il file
known_hostsha permessi errati, permessi777(rwx) o è scrivibile da altri.
Fix:
chmod 644 ~/.ssh/known_hostsErrore 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 ed25519per 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.
Errori SSH come permission denied (publickey) o bad permissions possono compromettere la sicurezza e bloccare l’accesso ai server. I nostri esperti Linux risolvono rapidamente problemi di configurazione e ottimizzano la tua infrastruttura SSH.