Autorizzazioni SSH e home directory


53

Mi ci sono volute ore per risolvere questo problema SSH con uno dei miei account di classe sui server della mia scuola.

Non ho potuto accedere a un determinato account di classe senza inserire la mia password, mentre l'autenticazione senza password ha funzionato con i miei altri account di classe. La directory .ssh / e tutto il suo contenuto avevano le stesse autorizzazioni corrette degli altri account di classe.

Si scopre che il problema erano le autorizzazioni impostate sulla mia home directory. L'autenticazione senza password non ha funzionato quando le autorizzazioni sulla mia directory HOME sono state impostate su 770 (indipendentemente dalle autorizzazioni impostate per .ssh /), ma ha funzionato con autorizzazioni impostate su 755 o 700.

Qualcuno sa perché SSH fa questo? È perché le autorizzazioni della directory home sono troppo permissive? Perché SSH rifiuta di autenticarsi con le chiavi pubbliche / private quando la home directory è impostata su un valore più permissivo di 700?


1
Confermate le risposte di seguito; il problema era che le autorizzazioni di gruppo sulla cartella home erano state impostate in modo errato (il messaggio di errore da auth.log era: 'Autenticazione rifiutata: proprietà o modalità errate per directory / home / <utente>'). Vedo che SSH ha ragione a essere schizzinoso riguardo alle autorizzazioni home dir.
action_potato,

5
Sapevi del tag wiki che abbiamo qui? Se fai clic su ssh e poi learn more, vedrai una lista di controllo su cosa fare quando SSH non funziona e menziona le autorizzazioni della directory home.
Gilles 'SO- smetti di essere malvagio' il

Ah, scusa non lo sapevo! Grazie per il testa a testa.
action_potato

Risposte:


54

Questo è il comportamento predefinito per SSH. Protegge le chiavi utente facendo rispettare rwx------in $HOME/.sshe garantendo solo il proprietario ha i permessi di scrittura $HOME. Se un utente diverso dal rispettivo proprietario dispone delle autorizzazioni di scrittura sulla $HOMEdirectory, potrebbe modificare in modo dannoso le autorizzazioni $HOME/.ssh, potenzialmente dirottando le chiavi dell'utente known_hostso qualcosa di simile. In breve, le seguenti autorizzazioni $HOMEsaranno sufficienti affinché SSH funzioni.

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

SSH non funzionerà correttamente e invierà avvisi ai servizi di registro in caso di variazioni g+wo o+wesistenze nella $HOMEdirectory. Tuttavia, l'amministratore può ignorare questo comportamento definendo StrictModes noil sshd_configfile di configurazione (o simile), anche se dovrebbe essere chiaro che ciò non è raccomandato .


1
Grazie per averlo menzionato StrictModes no. Nella mia configurazione, un ACL è configurato nella home directory dell'utente di destinazione e in tutti i discendenti per consentire le modifiche da parte di un utente semiprivile ( u:operator:rwx), e SSH non ha gradito questo.
intelfx,

31

77x nella tua home directory significa che chiunque abbia il GID corretto può spostare la tua directory .ssh e sostituirla con un'altra. Gli utenti con il GID corretto dispongono delle autorizzazioni di scrittura / esecuzione sulla home directory e pertanto possono rinominare / creare file / directory.

SSH è molto esigente quando si tratta di autorizzazioni, e dovrebbe.

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.