2012-03-16 20 views
12

chiavi siano adeguatamente distribuiti in ~/.ssh/authorized_keysRedHat 6/Oracle Linux 6 non consente l'autenticazione a chiave via ssh

Eppure ssh continua a chiesto di inserire una password.

+1

Controllare/var/log/secure avrà informazioni se la chiave pubblica non riuscita per autenticazione. I file più probabili hanno il permesso di lettura/scrittura sbagliato in ~/.ssh. – mguymon

+0

Nel mio caso i soldi andavano bene. era collegato a SELinux, vedi sotto –

risposta

28

diversi problemi, per lo più privilegi - ma anche in relazione alla SELinux su RedHat 6

Lo script che segue tutti dovrebbe risolvere, si prega di sostituire <user>:<group> con il tuo ID utente di corrispondenza e di gruppo

chown -R <user>:<group> ~/.ssh 
chmod 700 ~/.ssh 
chmod 600 ~/.ssh/* 
restorecon -R -v ~/.ssh 
+3

non dovresti cambiare i permessi dei file per essere leggibili a livello mondiale anche se sono all'interno di una directory protetta 'restorecon -R -v $ HOME/.ssh' è quello che ha fatto il trucco per me – feniix

+0

Sì, dovrebbe essere solo l'accesso al proprietario. Nella mia casella rhel6 funziona ancora con 600 – feniix

+0

Vuoi dire che il mio suggerimento era cattivo? perché vedo che hai modificato la tua risposta con 600 per i file. – feniix

1

La risposta di cui sopra è abbastanza buono, ho aggiunto un suggerimento &. L'aggiunta è nella riga 2 di seguito, poiché le autorizzazioni della directory home non sono più permissive di rwxr-x --- per l'autenticazione della chiave ssh.

cd ~ 
chmod g-w,o-rwx . 
chmod 700 .ssh 
cd .ssh 
chmod 600 * 
chmod 644 authorized_keys 
chmod 644 known_hosts 
chmod 644 config 
restorecon -R -v ../.ssh 

Il suggerimento è di utilizzare l'opzione -vv durante il test.

+0

Probabilmente vuoi dire '' o-rwx'', non '' u-rwx'' :) – darkk

+0

Buona cattura! Ho un problema mnemonico ricorrente con 'u' e 'o' nei comandi chmod/chown. 'o' è 'altro', non 'proprietario'! – nortally

5

Sono d'accordo con le modifiche sopra riportate sulla maggior parte delle varianti di linux nell'account root. Ho avuto un problema con RedHat 6.3 con il tentativo di ottenere un account utente postgres per utilizzare l'autenticazione DSA. (6.3 in esecuzione in VirtualBox)

Il problema può essere che i permessi di selinux di base sono errati. Restorecon non aiuterà in questo caso.

(After restorecon) 
drwx------. postgres postgres unconfined_u:object_r:var_lib_t:s0 .ssh 

ho fissato questo con:

chcon -R -t ssh_home_t .ssh 

Questo risolto questa istanza del problema.

+0

Ho cercato per tre giorni questa risposta! Non è stato fino a quando ho eseguito stat sul file delle chiavi autorizzato che ho notato un contesto SELinux sul file. L'ho confrontato con un file di chiavi autorizzato per un utente diverso e ho notato la differenza! Grazie, Greg! – BamaPookie

+0

Un altro punto che ho scoperto: se successivamente si esegue restorecon su questa directory .ssh, si perderanno le modifiche apportate con il comando chcon. È inoltre necessario aggiungere una politica che riapplicherà correttamente il contesto su un relabel del filesystem. Ho fatto questo con il seguente comando: semanage fcontext -a -t ssh_home_t "/path/to/service/home/.ssh(/.*)?". (Assicurati di utilizzare il percorso completo.) – BamaPookie

+1

Comando corretto: semanage fcontext -a -t ssh_home_t "/path/to/service/home/\.ssh(/.*)?" – BamaPookie

1

Avevo anche questo stesso problema, la soluzione proposta sopra non ha risolto il caso per me. Per riassumere le istruzioni abowe insieme:

  1. Controllare seguente file di log sul sistema di destinazione per eventuali dettagli delle errori:/var/log/secure
  2. Permesso di file in utenti directory ~/.ssh dovrebbe essere 600 e file devono essere di proprietà di "utente: gruppo"
  3. L'autorizzazione della directory ~/.ssh deve essere 700 e di proprietà di "utente: gruppo"
  4. Autorizzazione della directory home dell'utente es. "~" (= "~/.ssh/..") dovrebbe essere 755. Se le autorizzazioni sono f.ex 775, l'autenticazione della chiave ssh non è riuscita nel mio sistema.

br bruno

+0

Questa istruzione ha risolto il caso per te? O è solo una compilation? –