Authentication refused: bad ownership or modes for directory

Oggi mi sono imbattuto in un problema relativo alla configurazione di una autenticazione ssh tramite chiave dsa. E dopo aver ripetuto le stesse operazioni più volte e googlato per mezza giornata, ho finalmente risolto.

Ho seguito alla lettera una delle numerose guide presenti online per configurare l’autenticazione ssh tra 2 server utilizzando una chiave dsa, generata con il comando

ssh-keygen -t dsa

sul server client e poi copiata (quella pubblica, cioè la /home/YOUR_USER/.ssh/id_dsa.pub) sul server di destinatione nel file /home/YOUR_USER/.ssh/authorization_keys. Nonostante questo, mi veniva sempre richiesta la password. L’utilizzo dei parametri di verbose sul comando ssh

ssh -vvv user@hostname

non mi dava alcuna particolare indicazione. Verificando invece i log del server sshd su cui tentavo di effettuare il login, che nel mio caso si trovavano nel file /var/log/secure, ho notato numerose segnalazioni di errore di questo tipo:

Authentication refused: bad ownership or modes for directory XXX

dove XXX era la directory home dell’utente. Mi ero preoccupato di verificare solo i permessi relativi alla directory .ssh/ (700) e al file .ssh/authorization_keys (600) contenuti nella home dell’utente, ma mai avrei pensato di dover verificare pure quelli della home stessa. Sono stato illuminato da un paio di segnalazioni su questo tema (http://recursive-design.com/blog/2010/09/14/ssh-authentication-refused/, http://ubuntuforums.org/showthread.php?t=892686), nelle quali viene specificato che anche la home dell’utente sul server in cui si vuole effettuare il login deve avere permessi pari a 700:

chmod g-w /home/YOUR_USER

Come si dice, “all’s well that ends well”!

Lascia un commento