SSH Authorized_Key Login funziona solo in una direzione


0

Ci sono tre file nella mia configurazione:

id_rsa
id_rsa.pub
authorized_keys

authorized_keysha una copia dei id_rsa.pubcontenuti per consentire accessi senza password.

Questi file sono stati copiati tra due computer. Se ssh da computer1 a computer2, funziona. Se ssh da coputer2 a computer1, richiede una password. Qualcuno può dirmi perché questo potrebbe accadere.

Inoltre, entrambi i sistemi eseguono Ubuntu 10.04. Ho reinstallato i pacchetti openssh-server su entrambi i sistemi. Le autorizzazioni dei file sono le stesse. I file / etc / ssh sshd_confige ssh_configsono gli stessi. Ho corso con -v -v -ve l'unica differenza tra le due sessioni, è che una dice che la "chiave è stata accettata dal server", l'altra continua con la richiesta della password.

Quindi cos'altro resta da controllare?

Risposte:


1

È possibile ottenere l'output di debug del server arrestando il server ed eseguendolo dalla riga di comando:

sudo /usr/sbin/sshd -Dd

Questo mi ha dato il seguente output, dopo aver provato ad accedere dal mio altro computer:

...
Authentication refused: bad ownership or modes for directory /home/user
...

Verifica la mia directory:

ls -l /home/user
drwxrwxr-x 142 user user 7.7K 06-19 15:45 /home/user/

Le autorizzazioni corrette dovrebbero essere:

chmod 750 /home/user

Dopo averlo fatto, ora funziona.


0

Hai aggiunto l'impronta digitale da computer1 a .ssh/authorized_keyscomputer2?

Inoltre, non dovresti usare la stessa chiave privata tra molte scatole, poiché ciò indebolisce la sicurezza in caso di rottura di una scatola. Personalmente utilizzo una chiave per client per server.


Per quanto riguarda il secondo punto, ecco perché le chiavi dovrebbero sempre avere una password. Vedi anche superuser.com/questions/121307/…
Benjamin Bannier

Il file authorized_keys è lo stesso su entrambi i computer se questo è ciò che intendi. Inoltre, sono d'accordo con i problemi di sicurezza, in questo momento vorrei solo risolvere il problema, anche se finisco per cambiare le chiavi lungo la linea.
cmcginty,

Prova a impostare il livello del registro sshd su DEBUG sul computer2. Dopo un tentativo di connessione fallito, dovrebbe spiegare perché la chiave è stata rifiutata.
Daenyth,

Non è stato possibile ottenere informazioni sul lato client usando '-v -v -v'. c'è un altro metodo?
cmcginty,

Guarda i log sul lato server. Probabilmente è dentro /var/log/secureo /var/log/auth.log... Guardati intorno, dovresti vederlo. Impostare il livello del registro sshd su DEBUG insshd_config
Daenyth,

0

Una cosa da controllare oltre alla risposta di Daenyth è la proprietà e le autorizzazioni dei file all'interno della directory ~ / .ssh su entrambi i computer.

Assicurati di essere impostato come utente per tutti i file in quella directory: chown *USERNAME*: ~/.ssh/*

Inoltre, controlla che le autorizzazioni siano tali che i file siano leggibili e scrivibili dall'utente ma non siano accessibili per gruppo o altro :chmod 600 ~/.ssh/*


sì, i file e la directory .ssh sono di mia proprietà, tutte le autorizzazioni sono impostate su 600.
cmcginty

-1

La home directory non può essere neanche scrivibile dal mondo o dal gruppo, non solo dir e file .ssh, se il tuo file sshd_config ha StrictModes = yes.

Prova cambiando StrictModes = no e riavvia il demone sshd


-1: Questo crea un potenziale buco nella sicurezza, che non hai spiegato ...
Blacklight Shining
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.