La connessione SSH richiede la password sebbene la chiave sia accettata


12

Mi viene richiesta una password anche se sembra che la mia chiave SSH sia stata accettata. Per quanto ne so, la riga "Server accetta chiave: pkalg ssh-rsa blen 277" nei registri sottostanti indica che la mia chiave è stata accettata.

Ecco i log di debug:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/sam/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp <<HASH REDACTED>>
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/sam/.ssh/id_dsa
debug1: Trying private key: /home/sam/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug2: we sent a keyboard-interactive packet, wait for reply
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1

Aiuto molto apprezzato, tutti quelli che ho trovato che hanno problemi di SSH falliscono in un punto precedente che sto vedendo.

Risposte:


11

La chiave privata è stato certamente non accettata, ha tentato solo. Esistono diversi modi in cui l'autenticazione basata su chiave SSH può non riuscire e la registrazione non è davvero eccezionale, quindi il debug di questo particolare problema è uno dei miei problemi personali. Ho scoperto che l'errore di solito è il risultato di una delle seguenti situazioni.

  • Il tuo ~/.ssh/authorized_keysfile è troppo aperto. Per la tua protezione sshdcerca di proteggerti da te stesso. Se le autorizzazioni sul file delle chiavi autorizzate falliranno l'autenticazione. Corri chmod -R go-rwx ~/.ssh.
  • La tua chiave pubblica non ~/.ssh/authorized_keysè corretta. Questo potrebbe essere il risultato di un numero qualsiasi di problemi, ma il più comune è un problema di copia e incolla. Alcuni terminali, quando si copia / incolla su schermi, interpretano un avvolgimento di linea come una nuova linea. Ogni voce nel authorized_keysfile deve essere una riga singola. Puoi verificarlo cambiando le dimensioni del tuo emulatore di terminale e vedendo se c'è un'interruzione, confrontando l'output di wc -l ~/.ssh/authorized_keyscon il numero di chiavi che dovrebbero essere lì o qualunque cosa funzioni meglio per te. Assicurati solo che ogni tasto sia composto da una riga e dovresti andare bene.

7

L'output di ssh -v che hai incollato ha suggerito che ha provato a usare il tasto ma che non ha funzionato, quindi è passato alla tastiera interattiva.

Hai controllato il registro di autenticazione sul server a cui ti stai connettendo? (ad es. /var/log/auth.log). Se la tua configurazione da remoto non è corretta, ad esempio permessi errati, allora ssh -v (o -vv o -vvv) non te lo diranno, ma verrà registrato da sshd.


/var/log/auth.log ha risposto per me: "Autenticazione rifiutata: cattiva proprietà o modalità per directory / root"
kevlar1818

5

Nel mio caso, il file /var/log/authlogmostrava:

[ID 800047 auth.info] Authentication refused: bad ownership or modes for directory 

Avevo verificato la proprietà / autorizzazioni corrette .sshma $HOMEavevo le autorizzazioni 777. Impostazione delle autorizzazioni 755 su $HOMEsftp consentito per funzionare. Grazie ancora.


2

Se si ha accesso al server (direttamente o tramite un altro accesso), controllare il server accede (diciamo) /var/log/sshdo in /var/log/securebase al proprio sistema

In genere è causato da un errore di autorizzazioni sul ~/.ssh/authorized_keysfile. Assicurati che non sia leggibile dal mondo, ma soprattutto che sia leggibile dall'utente (a volte un utente del servizio) che esegue sshd


1
Quale sistema utilizza /var/log/sshd? I sistemi che conosco usano /var/log/auth.logo /var/log/secure.
Kasperd,

1

Le autorizzazioni di ~/.ssh/authorized_keysin remote sono importanti ( 600per i miei sistemi RHEL e Solaris)

Le autorizzazioni della tua home directory in remoto sono importanti ( 700nei miei sistemi)

Alla fine, eseguire sshdin macchina remota in modalità debug su un'altra porta può essere utile:

sudo /usr/sbin/sshd -p 5555 -dd

5555è una porta di esempio, puoi cambiarla. Per maggiori informazioni al riguardo puoi consultare: http://ubuntuforums.org/archive/index.php/t-2219973.html


0

Ho scoperto che c'è un problema se uso il sshdservizio. Per evitare questo problema, interrompere il sshdservizio con service sshd stope quindi avviare il sshddaemon dal prompt dei comandi con sudo /usr/sbin/sshd.


0

Provare

/sbin/restorecon -r /root/.ssh

Un possibile problema con l'impostazione delle autorizzazioni.

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.