Autorizzazioni chiave SSH Impostazioni chmod?


63

Devo utilizzare SSH sulla mia macchina per accedere al mio sito Web e ai suoi database (impostazione di un collegamento simbolico, ma sto divagando).

Problema seguente: inserisco il comando: ssh-keygen -t dsa
Per generare una coppia di chiavi dsa pubbliche / private. L'ho salvato nel valore predefinito ( /home/user/.ssh/id_dsa): e inserisci Enter passphrase due volte

poi ho questo indietro:

ATTENZIONE: FILE CHIAVE PRIVATO NON PROTETTO!
Le autorizzazioni 0755 per '/home/etc.ssh/id_rsa' sono troppo aperte. Si consiglia che i file della chiave privata NON siano accessibili ad altri. Questa chiave privata verrà ignorata. permessi errati: ignora chiave: [quindi il FILE PATH in VAR / LIB / SOMEWHERE]

Ora per ovviare a questo ho poi provato-

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

Ma poco dopo il mio computer si è bloccato e al momento del log-in c'era di nuovo un could not find .ICEauthority error. Ho risolto questo problema e ho eliminato i file SSH ma vorrei essere in grado di utilizzare le autorizzazioni corrette per evitare questi problemi in futuro. Come devo impostare ICEauthority o dove devo salvare le chiavi SSH o quali autorizzazioni dovrebbero avere? Usare una macchina virtuale sarebbe la cosa migliore?

È tutto molto nuovo e mi trovo su una curva di apprendimento molto ripida, quindi qualsiasi aiuto è stato apprezzato.


tipicamente scusa è stata generata solo una serie di chiavi!
crissixpaul,

le autorizzazioni per la directory .ssh sono altrettanto importanti delle autorizzazioni chiave. Dovrebbe essere 600. Per risolvere il problema eseguire: chmod -R 600 ~/.ssh.
KWubbufetowicz,

4
in realtà i permessi della directory .ssh devono essere 700 non 600. Il permesso di esecuzione è quello che ti dà accesso a ciò che è dentro quella directory. Quindi i comandi corretti dovrebbero essere chmod 700 $HOME/.sshechmod 600 $HOME/.ssh/id_rsa
MelBurslan,

L'errore relativo a .ICEauthority non è correlato ai chmodcomandi mostrati. O è una coincidenza o hai eseguito altri comandi che non ci stai mostrando.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(ie chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) sono corretti.

chmod 644 ~/.ssh/id_rsa.pub(ie chmod a=r,u+w ~/.ssh/id_rsa.pub) sarebbe anche corretto, ma chmod 644 ~/.ssh/id_rsa(ie chmod a=r,u+w ~/.ssh/id_rsa) non lo sarebbe. La tua chiave pubblica può essere pubblica, ciò che conta è che la tua chiave privata sia privata.

Anche la tua .sshdirectory stessa deve essere scrivibile solo da te: chmod 700 ~/.ssho chmod u=rwx,go= ~/.ssh. Ovviamente devi essere in grado di leggerlo e accedere ai file al suo interno (eseguire l'autorizzazione). Non è direttamente dannoso se gli altri possono leggerlo, ma non è nemmeno utile.

Non hai bisogno sudo. Non usare sudoper manipolare i tuoi file, ciò può solo portare ad errori.

L'errore about .ICEauthoritynon è correlato ai chmodcomandi che mostri. O è una coincidenza o hai eseguito altri comandi che non ci stai mostrando.


Cosa devono essere le autorizzazioni per ~ / .ssh / known_hosts?
nikc,

0

Voglio aggiungere alle risposte sopra che per me anche la mia directory home ( ~/) doveva avere le autorizzazioni 755, indipendentemente dalle autorizzazioni ~/.sshe dai file in essa contenuti. (Questo era su un Synology NAS, potrebbe non essere applicabile a tutti i Linux)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.