Soluzione 1:
La prima cosa da fare in questa situazione è usare il -v
opzione a ssh
, in modo da poter vedere quali tipi di autenticazione vengono provati e qual è il risultato. Questo aiuta a chiarire la situazione?
Nel tuo aggiornamento alla tua domanda, menzioni "su un altro Ubuntu locale". Hai copiato la chiave privata ssh sull'altra macchina?
Soluzione 2:
Poiché non è stato menzionato esplicitamente, sshd è per impostazione predefinita molto severo sui permessi per authorized_keys
File. Quindi, se authorized_keys
è scrivibile per chiunque non sia l'utente o può essere reso scrivibile da chiunque non sia l'utente, rifiuterà l'autenticazione (a meno che sshd non sia configurato con StrictModes no
)
Quello che intendo per "può essere reso scrivibile" è che se una qualsiasi delle directory padre è scrivibile per chiunque non sia l'utente, gli utenti autorizzati a modificare tali directory possono iniziare a modificare i permessi in modo tale da poter modificare/sostituire le chiavi_autorizzate.
Inoltre, se /home/username/.ssh
la directory non è di proprietà dell'utente, e quindi l'utente non ha i permessi per leggere la chiave, potresti incorrere in problemi:
drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh
Nota che jane non possiede il .ssh
file. Risolvi questo problema tramite
chown -R jane:jane /home/jane/.ssh
Questi tipi di problemi di autorizzazione del filesystem non verranno visualizzati con ssh -v
e non verranno nemmeno visualizzati nei log di sshd (!) finché non imposti il livello di log su DEBUG.
- Modifica
/etc/ssh/sshd_config
. Vuoi una riga che leggaLogLevel DEBUG
lì da qualche parte. Ricarica il server SSH utilizzando il meccanismo fornito dalla distribuzione. (service sshd reload
su RHEL/CentOS/Scientific.) Un normale ricaricamento non eliminerà le sessioni esistenti. - Riprova ad autenticarti.
- Scopri dove vanno i log della tua struttura di autenticazione e leggili. (IIRC,
/var/log/auth.log
su distribuzioni basate su Debian;/var/log/secure
su RHEL/CentOS/Scientific.)
Molto più facile capire cosa non va nell'output di debug che include errori di autorizzazione del filesystem. Ricorda di ripristinare la modifica a /etc/ssh/sshd_config
al termine!
Soluzione 3:
Ho ricevuto questo errore perché ho dimenticato di aggiungere -l
opzione. Il mio nome utente locale non era lo stesso del sistema remoto.
Questo non risponde alla tua domanda, ma sono arrivato qui cercando una risposta al mio problema.
Soluzione 4:
Ho ricevuto questo messaggio su una nuova istanza basata sull'AMI di Ubuntu. Stavo usando l'opzione -i per fornire il PEM ma mostrava ancora "Autorizzazione negata (chiave pubblica)".
Il mio problema era che non stavo usando l'utente corretto. Eseguendo ssh con [email protected] ha funzionato normalmente.
Soluzione 5:
Qualcosa che è più facile da leggere di ssh -v
(secondo me ovviamente), è tail -f /var/log/auth.log
. Dovrebbe essere eseguito sul server a cui stai tentando di connetterti, mentre tenti di connetterti. Mostrerà gli errori in testo semplice.
Questo mi ha aiutato a risolvere il mio problema:
Utente [username] da xx.yy.com non autorizzato perché nessuno dei gruppi di utenti è elencato in AllowGroups