Il server OpenSSH rifiuta di accettare l'autenticazione con chiave


13

Ho provato a utilizzare l'autenticazione con chiave pubblica sul mio nuovo server e ho riscontrato questo problema.

$ ssh -v -i .ssh/server 192.168.1.100
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data .ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file .ssh/server type -1
debug1: identity file .ssh/server-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.100' is known and matches the RSA host key.
debug1: Found key in .ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: .ssh/server
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password

e quindi devo inserire la mia password per accedere.

Ma, se ho già una sessione connessa a quel server (che è collegato tramite password), la seguente connessione utilizza l'autenticazione chiave per evitare l'immissione della password.

Se non è già stata stabilita una connessione SSH, non riesco a collegarmi senza la password di input.

Questo è davvero strano per me, ho controllato l'MD5 /usr/sbin/sshdtra il nuovo server e l'altro server normale, è lo stesso. Quindi ho appena copiato l' /etc/ssh/sshd_configaltro server normale sul nuovo server e ho eseguito service ssh restart. Il problema esiste ancora.

Come dovrei risolvere questo?

Risposte:


10

Verificare che la .sshcartella e i file al suo interno sul computer client siano leggibili solo dal proprietario ( chmod -R 600 .ssh) e che il proprietario sia corretto per la cartella e i file (utilizzare il chowncomando se necessario).

Controlla anche la authorized_keyscartella e il file sul server (probabilmente nella /root/.sshcartella home dell'utente che sta tentando di accedere) per assicurarti che le autorizzazioni e il proprietario siano impostati nello stesso modo.


Modifica: basato su più feedback (e alcune ipotesi!) - puoi controllare /etc/ssh/sshd_confige vedere se il seguente parametro è impostato come di seguito. In caso contrario, prova a modificarlo.

AuthorizedKeysFile /home/%u/.ssh/authorized_keys

Nota, questo presuppone che tu non effettui il login remoto come root


il mio .ssh è 700 e i file in .ssh sono 600 e ho ricontrollato ~ / .ssh / authorized_keys nella macchina remota. L'installazione della chiave pubblica auth è la prima cosa che faccio dopo aver installato il sistema, quindi è probabile che non venga incasinato da altre operazioni. a proposito, problema ancora ..
lxyu,

OK - Sto aggiungendo qualcosa alla mia risposta in base a questo.
Linker3000,

c'è una riga di "#AuthorizedKeysFile% h / .ssh / authorized_keys". Ho provato a commentarlo, ma inutilmente. A proposito, lo stesso '/ usr / sbin / sshd' con lo stesso 'sshd_config', come si comportano diversamente?
lxyu,

Alla fine ho reinstallato Ubuntu, quindi ho installato openssh-server in un minuto e ora funziona bene ... Non so ancora cosa c'è che non va. :(
lxyu,

A volte è davvero difficile scoprire qual è il problema. Una volta ho scritto male le chiavi autorizzate come auhorized_keys. Ho avuto bisogno di circa un'ora per risolvere questo problema. Hai visto l'ortografia errata? È davvero complicato! :-)
nalply

4

Ho risolto il mio caso di questo errore rimuovendo id_rsa.pubda .ssh.

Avevo copiato id_rsada un'altra macchina e distribuito su diversi client fittizi. Pertanto, id_rsaed id_rsa.puberano in realtà chiavi diverse che ne impedivano l'utilizzo del id_rsatutto.

Nessun messaggio di errore per indicare chiaramente questo però. L'ho capito essenzialmente per caso, cercando di riportare le diverse macchine in uno stato identico.


3

Dalla mia scoperta, il minimo permesso del direttore di casa del bersaglio è 750. Se il bit del mondo non 0lo è, non funzionerà.

Per esempio. per la directory di root:

drwxr-x--- 3 root root 4096 Jul 20 11:57 root

Il prossimo è /root/.ssh

drwx------  2 root root  4096 Jul 17 03:28 .ssh

Poi /root/.ssh/authorized_keys

-rw------- 1 root root 1179 Jul 17 03:28 authorized_keys

3

Nel mio caso le autorizzazioni sulla home directory erano 775invece 0755o inferiori.

L'intero percorso del file authorized_keys, ovvero /home/user/.ssh/deve essere 0755o inferiore.


GRAZIE Ho appena letto un mal di testa che ho da una settimana. La maggior parte delle persone menziona solo la cartella .ssh (700) e le autorità autorizzate (600)
Jonathan Komar

2

Dopo essere stato molto preoccupato, ho ottenuto la soluzione del problema:

La home directory dell'utente non dovrebbe avere permessi 777o scrivere in tutto il mondo. In tal caso, la verifica della chiave SSH non riuscirà e dovrai inserire la password per l'accesso.


1

Assicurati solo che l'account a cui stai tentando di accedere a ssh sia un utente con una password sul server remoto. Ho appena sbattuto la testa sul muro per mezz'ora prima di trovare questa risposta qui: /programming//a/14421105/758174


1

Se hai /etc/ssh/sshd_configla seguente riga non commentata, la tua configurazione SSH consente solo a un elenco fisso di utenti di accedere al sistema e devi aggiungere nuovi account all'elenco:

AllowUsers root user1 user2 user3

Tutti gli utenti diversi da quelli sopra elencati che tentano di accedere tramite SSH riceveranno questi messaggi di errore criptici:

Roaming not allowed by server

0

Ho scoperto che dopo aver cambiato il mio nome utente e gruppo (ma non gli ID) in /etc/passwde /etc/group, dimenticandomi di cambiare di /etc/shadowconseguenza, ho ricevuto lo stesso messaggio "Nessun roaming consentito".

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.