Cosa significa questo errore ssh?


9

Questa è la mia ultima risorsa. Ho cercato di capire il problema qui per ore.

Ecco il problema: ho copiato la mia chiave privata dalla macchina # 1 alla macchina # 2. La macchina n. 1 è in grado di connettersi tramite ssh a un server con la mia chiave pubblica, ma la macchina n. 2 fornisce il seguente output, quando si tenta di connettersi al server:

$ ssh -vvv -i /home/kevin/.ssh/kev_rsa user@192.168.1.244 -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace

...


Permission denied (publickey).

C'è ovviamente più output di debug che ho omesso, e posso fornire su richiesta. Sono comunque convinto che non mi piace il mio file di chiave privata.

Avevo anche il sospetto che avesse a che fare con il modo in cui l'ho copiato dalla macchina n. 1 alla macchina n. 2. Ho copiato / incollato il testo dalla chiave privata su un'unità flash. Questo potrebbe essere il problema, tuttavia, quando ho duplicato questo metodo su un altro file di chiave privata funzionante e fatto un diff sull'originale, su quello copiato / incollato, sono identici.

Ho lottato con questo. Se solo potessi ottenere qualche informazione in più sul perché non mi piace la mia chiave, potrei risolverlo, ne sono sicuro. Qualcuno ha qualche idea su questo? Esistono dei meta-dati da qualche parte che dicono a ssh che un file è in realtà una chiave RSA?


E cosa dice /var/log/auth.logsul server?
Womble

Per chiarimenti, la chiave pubblica della macchina 1 si connette al server. La chiave privata dalla macchina 1, in esecuzione sulla macchina 2 non si connetterà al server?
Dru,

Ho la stessa coppia di chiavi su entrambe le macchine e la chiave pubblica è sul server. Copio le chiavi incollate dalla macchina client 1, che non ha problemi di connessione al server, qui sul mio computer di casa (macchina 2) che presenta questo problema di autenticazione.
Kevin

@womble, Sfortunatamente, non riesco ad accedere al server, se riesco a capirlo, sarò in grado di ssh proprio in .. Ahh, ironia ...;)
Kevin

Quali sono i sistemi operativi sui due computer client? Il trasferimento della chiave privata potrebbe aver modificato le terminazioni di riga o introdotto del testo (possibilmente righe o spazi vuoti) prima della riga di apertura?
Stobor,

Risposte:


7

Nella mia esperienza sono i due errori di autenticazione basati sulla chiave più comuni

  1. Autorizzazioni non sufficientemente ampie per la $HOME/.sshdirectory
  2. Errore durante la copia della chiave pubblica sul sistema remoto

Autorizzazioni file

OpenSSH fa molto nel tentativo di proteggerti da te stesso. Il modo più impattante per l'utente è quello di imporre rigide restrizioni a chi ha accesso alla cartella ssh locale. Vuoi davvero solo tu, e solo tu, accedere alla directory. Bene, e chiunque abbia uid = 0, ma non c'è modo di aggirarlo. Quindi quello che devi fare è semplicemente cambiare le tue autorizzazioni: chmod -R go-rwx ~/.sshquesto rimuoverà i diritti di lettura, scrittura ed esecuzione di tutti i file sotto la directory .ssh da tutti gli utenti tranne il proprietario, cioè tu .

Problemi con le chiavi autorizzate

Il file contenente la tua chiave pubblica, in genere $HOME/.ssh/authorized_keysdeve contenere un modulo molto specifico per SSH per capire come accettare la chiave privata. Ogni chiave deve contenere almeno 2 campi

  1. Tipo di chiave utilizzata (RSA, DSA, RSA1, ecc.)
  2. Chiave

Ogni chiave, insieme a tutte le sue opzioni e parti componenti, deve essere elencata una per riga in questo file. Poiché i tasti tendono ad essere molto lunghi, spesso si avvolgono e appaiono come due linee sul terminale. Questo a volte causerà il caos quando si tenta di copiare / incollare, poiché a volte una o più nuove righe vengono inserite ovunque il tasto si avvolge sullo schermo. Risolvere questo problema può essere un po 'più complicato per un principiante della shell.

Prova a eseguire
wc -l ~/.ssh/authorized_keys
Questo stamperà il numero di righe nel file. Confronta quel numero con il numero di chiavi che ti aspetti di essere nel file. Se accetti solo questa chiave, puoi anche creare una copia del file della chiave pubblica, poiché ha lo stesso formato del file delle chiavi autorizzate. Qualcosa di simile
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
o, se hai la tua chiave pubblica sullo stesso sistema che puoi fare
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys

Inoltre, cerca nel file di registro sull'host remoto e vedi se vi sono errori riportati. Molto probabilmente i file saranno /var/log/secure.logo /var/log/auth.


1
Ciao, grazie per il tuo impegno qui. Lo apprezzo molto. Non è sicuramente un problema di autorizzazioni. Ho verificato che le autorizzazioni siano corrette. (Avrei dovuto aggiungerlo come avvertimento). Inoltre, anche se al momento non riesco ad accedere alle chiavi originali, ho duplicato il processo che ho usato per copiare la chiave che sto usando. Ho anche fatto un md5sum per verificare che i file siano identici. Ha senso?
Kevin

1
E ancora, non riesco ad accedere al server. Tipo di tutto il problema qui ...;)
Kevin

@Scott: make a copy of the private key filedovrebbe essere una chiave pubblica (come mostrato nei tuoi esempi)
mlp

0

Tuttavia, sarà probabilmente necessario generare una nuova coppia di chiavi per la macchina 2 per connettersi al server. Spesso la chiave pubblica elenca l'utente e il nome della macchina di quelli che li hanno generati. Ciò dovrebbe essere evidente nel file authorized_keys sul server.


2
Ho avuto l'impressione che ignori quelli, che sono semplicemente dei commenti per aiutarti a identificarli quando visualizzi le lettere autorizzate. E comunque, ancora una volta, ho appena copiato / incollato le chiavi. Quindi sono identici. Dubito seriamente che controlli il tuo nome host. Se così fosse, potrei cambiarlo facilmente. Che diavolo, ci proverò comunque ...
Kevin

0

I messaggi di debug forniti indicano che un file di chiave privata viene letto supponendo che si tratti effettivamente di una chiave pubblica / file host autorizzato. Questo potrebbe non essere un errore fatale (ricevo tali messaggi anche per connessioni funzionanti). Dice qualcosa su "Offerta" o "abbiamo inviato"?


-3

Prova a confrontare i file di configurazione ssh tra i due server.

vale a dire. qualcosa come cat / etc / sshd_config


Avrei dovuto essere più chiaro. Esistono due client, un server. Non riesco ad accedere al server o all'altro computer client. Potrò accedere al server non appena questa dannata chiave verrà autenticata;)
Kevin
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.