Le chiavi SSH impostate e i log vengono visualizzati correttamente, ma richiede ancora la password?


0

Non ha mai funzionato correttamente, non credo. Non ricordo, ho appena inserito la password per tutto questo tempo. Gestisco dieci server con bilanciamento del carico, ma li accedo internamente tramite IP interni. Quando ssh-copy-id la mia chiave per il sistema remoto, sembra che si autentichi correttamente, ma mi chiede ancora una password. La mia cartella .ssh ha permanenti di 600, solo known_hosts ha 644 e altri server su cui funzionano le chiavi hanno gli stessi permessi. / var / log / secure dice che è stato accettato. Tutti i permanenti in / etc / ssh / * sono 644. Qualche idea? Grazie in anticipo!

**/var/log/secure**
Jul 25 07:30:55 X sshd[25970]: Accepted password for user from 172.29.2.133 port 23423 ssh2
Jul 25 07:30:55 X sshd[25970]: pam_unix(sshd:session): session opened for user user by (uid=0)
Jul 25 07:37:27 X sudo: pam_unix(sudo:auth): conversation failed
Jul 25 07:37:27 X sudo: pam_unix(sudo:auth): auth could not identify password for [user]
Jul 25 07:38:15 X sudo:   user: TTY=pts/1 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/less /var/log/secure

**ssh -v output**
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014                                                            
debug1: Reading configuration data /etc/ssh/ssh_config                                              
debug1: /etc/ssh/ssh_config line 29: Applying options for *                                         
debug1: Connecting to X [172.20.2.131] port 22.                                              
debug1: Connection established.                                                                     
debug1: identity file /home/user/.ssh/id_rsa type 1                                               
debug1: identity file /home/user/.ssh/id_rsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_dsa type -1                                              
debug1: identity file /home/user/.ssh/id_dsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_ecdsa type -1                                            
debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1                                       
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0                               
debug1: channel 0: free: client-session, nchannels 1                                                
Connection to X closed.                                                                      
Transferred: sent 11752, received 9832 bytes, in 262.0 seconds                                      
Bytes per second: sent 44.9, received 37.5                                                          
debug1: Exit status 0                                                                               
user@AUR-000229:/mnt/c/Users/user$ ssh -v X
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014                                                            
debug1: Reading configuration data /etc/ssh/ssh_config                                              
debug1: /etc/ssh/ssh_config line 29: Applying options for *                                         
debug1: Connecting to X [172.20.2.131] port 22.                                              
debug1: Connection established.                                                                     
debug1: identity file /home/user/.ssh/id_rsa type 1                                               
debug1: identity file /home/user/.ssh/id_rsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_dsa type -1                                              
debug1: identity file /home/user/.ssh/id_dsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_ecdsa type -1                                            
debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1                                       
debug1: identity file /home/user/.ssh/id_ed25519 type -1                                          
debug1: identity file /home/user/.ssh/id_ed25519-cert type -1                                     
debug1: Enabling compatibility mode for protocol 2.0                                                
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8                              
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3                            
debug1: match: OpenSSH_4.3 pat OpenSSH_4* compat 0x00000000                                         
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<3072<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: Server host key: RSA 8a:0f:76:f8:55:e7:65:25:10:ae:f3:d9:3c:dd:48:0a                        
debug1: Host 'X' is known and matches the RSA host key.                                      
debug1: Found key in /home/user/.ssh/known_hosts:10                                               
debug1: ssh_rsa_verify: signature correct                                                           
debug1: SSH2_MSG_NEWKEYS sent                                                                       
debug1: expecting SSH2_MSG_NEWKEYS                                                                  
debug1: SSH2_MSG_NEWKEYS received                                                                   
debug1: SSH2_MSG_SERVICE_REQUEST sent                                                               
debug1: SSH2_MSG_SERVICE_ACCEPT received                                                            
debug1: Authentications that can continue: password                                                 
debug1: Next authentication method: password                                                        
user@X's password:                                                                         
debug1: Authentication succeeded (password).                                                        
Authenticated to X ([172.20.2.131]:22).                                                      
debug1: channel 0: new [client-session]                                                             
debug1: Entering interactive session.                                                               
debug1: Sending environment.                                                                        
debug1: Sending env LANG = en_US.UTF-8                                                              
Last login: Tue Jul 25 07:26:18 2017 from 172.29.2.133   



**Another server who with the same setup, keys work.**
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014

debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 29: Applying options for *
debug1: Connecting to X [172.20.2.132] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
debug1: identity file /home/user/.ssh/id_dsa type -1
debug1: identity file /home/user/.ssh/id_dsa-cert type -1
debug1: identity file /home/user/.ssh/id_ecdsa type -1
debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/user/.ssh/id_ed25519 type -1
debug1: identity file /home/user/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH_4* compat 0x00000000
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<3072<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: Server host key: RSA 15:5c:e0:96:15:6c:18:85:e8:e8:86:ab:3a:e7:7e:b7
debug1: Host 'X' is known and matches the RSA host key.
debug1: Found key in /home/user/.ssh/known_hosts:25
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available

debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to X ([172.20.2.132]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Tue Jul 25 07:27:19 2017 from 172.29.2.133                  

Recentemente ha avuto problemi simili ed era perché l'utente non era proprietario del file authorized_keys
Datmocc

Il mio utente possiede il file authorized_keys, known_hosts e la stessa cartella .ssh. Ho incontrato le stesse cose una volta, ma ho controllato questo. Tutto mi va bene, ma qualcosa deve essere spento. Grazie!
Kyle H,

Risposte:


1

Per non contraddire nessuno, ma se il server richiede sempre e solo l'autenticazione con password, il tuo client non offrirà una chiave.

Nel tuo debug sopra:

debug1: autenticazioni che possono continuare: password
debug1: metodo di autenticazione successivo: password
utente @ password X:
debug1: autenticazione riuscita (password).
Autenticato su X ([172.20.2.131]: 22).

Il server a cui ti stai connettendo non ti offre (il client) di fornire un PSK. Sshd_config del server deve avere quanto segue:

PubkeyAutenticazione sì

AuthorizedKeysFile .ssh / authorized_keys

Per fare un confronto, questo è il mio output di debug ssh per un server che è correttamente disposto ad accettare l'autenticazione con chiave pubblica:

debug1: autenticazioni che possono continuare: chiave pubblica, tastiera interattiva

debug1: metodo di autenticazione successivo: publickey

debug1: offerta della chiave pubblica RSA: import-openssh-key

debug1: il server accetta la chiave: pkalg rsa-sha2-512 blen 151

debug1: scambio di cifratura CTR da singolo a multithread - richiesta client

debug1: autenticazione riuscita (publickey).

- scusa per la scarsa formulazione -


Non stavo pensando alla configurazione poiché l'amministrazione di sistema è un dipartimento diff. Sono in IT e sono solo un altro tipo di amministratore di sistema Linux che codifica principalmente e funziona con un'applicazione. Questa è stata la risposta corretta Grazie! #RSAAutenticazione sì PubkeyAutenticazione no #AuthorizedKeysFile .ssh / authorized_keys
Kyle H

0

Come suggerisce Datmocc , controlla la proprietà del file authorized_keys sul server, nonché la proprietà del file id_rsa localmente. Dovresti anche assicurarti che solo il proprietario abbia il permesso di lettura ( chmod 400 <file>). Dai un'occhiata all'output del registro per sshd sul server quando si avvia, si lamenterà se c'è un problema con queste autorizzazioni.

Il registro di debug per la sessione ssh mostra che non fornisce la chiave privata per l'autenticazione (come suggerito nell'intestazione della domanda) e, a quanto pare, il tuo server non sta nemmeno pubblicizzando accetterà l'autenticazione con chiave privata. Un registro di debug di una sessione di autenticazione con chiave privata riuscita dovrebbe contenere qualcosa del tipo:

debug1: Authentications that can continue: publickey,**others
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 407
debug1: Authentication succeeded (publickey).

Fino a quando il server non lo indica Authentications that can continue: publickey, il tuo client non lo offrirà mai.


Ho aggiunto i log per un altro server in cui il login con chiave ssh funziona davvero. Mi chiedevo se forse il server non era impostato correttamente anche per i tasti SSH. Nei log del server funzionante non vedo nulla che possa confrontare. Noto una riga che dice "Il server accetta le chiavi X" che elenca i formati chiave che accetta. Mi chiedo se il server non è configurato per le chiavi rsa? Dovrei controllare l'installazione di ssh possibilmente
Kyle H

In quell'output del registro: Authentications that can continue: publickey,gssapi-with-mic,passwordviene creato dalla risposta del server, non dal client. Nota che nel tuo problema publickeymanca la parola , a dimostrazione del fatto che il server non la offre mai come mezzo di autenticazione valido.
Liam Dennehy,
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.