ssh-copy-id - permesso negato (chiave pubblica) [chiuso]


30

Voglio impostare il tunnel ssh sul server mysql che è nel computer che ha una macchina virtuale. Anche il tunnel deve funzionare se la macchina viene riavviata.

Quindi diciamo che A è un computer con software Linux. B - macchina virtuale nel computer A.

MySQL è in B.

C - è una macchina virtuale nel computer A che vuole connettersi a MySQL in B.

Ora da questo articolo: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

Provo a copiare la chiave pubblica sul server remoto. Immagino di doverlo copiare sul computer A.

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Ora ho provato a inserire la passphrase del file id_rsa.pub.bak. Negato.

Poi vedo che usa la chiave in /home/[user[/.ssh/id_rsa che è diversa dalla chiave pubblica che sto cercando di copiare, intendo ovviamente la chiave privata è diversa, ma intendo che copio la chiave pubblica di un'altra chiave privata. Quindi ho provato a usarne la passphrase. Anche negato.

Come posso eseguire il debug perché viene negata la passphrase?

Aggiornare

Sulla base dei commenti ho creato un nuovo file pubblico chiamato id_rsa.pub dove ora tutto è in una riga

ed esegui e ricevi ancora errori.

ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Aggiornare

Controllate le autorizzazioni sulla cartella .ssh e sul file authorized_keys nel computer A - sono 700 e 600, quindi il commento dice che sono buoni.

Aggiornare

Ho provato a impostare l'autenticazione della password sì su un computer e riavviare il servizio. Il riavvio come dalla risposta non ha funzionato, ha scritto sshd non riconosciuto, quindi ho riavviato usando:

sudo /etc/init.d/ssh restart

Quindi riprovare sulla macchina C per copiare su una macchina.

ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v

e sempre lo stesso:

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Se vado a copiare la chiave manualmente in authorized_keys, vedo che la chiave pubblica è già esistente, la stessa che voglio copiare. Ho chiesto al mio collega, ha detto che non l'ha copiato. Quindi non capisco nemmeno come possa essere lì.

Ok, se è lì sarebbe bello, ma rimanendo lì non mi permette di connettermi con ssh senza inserire la passphrase. Ma sono stato in grado di connettermi inserendo la passphrase. Quindi qualcosa è chiaramente ancora sbagliato qui. E la chiave che sto cercando di copiare è con passphrase vuota. Quando mi sono connesso con ssh - ho inserito la passphrase che non era vuota.

La stessa chiave pubblica non può accettare passphrase vuota e passphase non vuota, questo ha senso. Ma allora perché la chiave pubblica che sto cercando di caricare è la stessa di quella nel file authorized_keys se le passphrase sono diverse? Non ho controllato tutti i singoli personaggi, ma è improbabile che le chiavi siano così simili che l'inizio e la fine siano uguali anche quando penso che la passphrase diversa.


Quali file iniziano con id_rsa? Mi aspetterei ssh-copy-iddi fallire con un messaggio di errore nel modo in cui lo chiami, poiché si aspetta un file che termina con .pub. Come il tuo finisce con .bakesso probabilmente userebbe id_rsa.pub.bak.pub.
nlu,

@nlu - Ho id_rsa che ho copiato trascinando il file usando notepad ftp explorer. Ho anche id_rsa.bak che ho creato con nano e incollato i contenuti con il mouse da Notepad ++, ma sembrava che facesse lo stesso testo ma in qualche modo 2 colonne. E ho anche id_rsa.pub.bak, anch'esso creato con nano. In realtà ha 3 righe, ma l'originale ha tutte in una riga. Non so importa. Ma come vediamo non ho ricevuto messaggi di errore sui nomi dei file.
Darius.V,

1
Lo fa. Vedi qui per esempio: snailbook.com/faq/publickey-userauth.auto.html ("Se usi un editor di testo, assicurati che non interrompa le righe in questo file.").
nlu,

La domanda è chiusa perché pensano che non sia un sistema nell'ambiente aziendale, ma stavo risolvendo il problema dell'ambiente aziendale.
Darius.

Risposte:


25

In realtà è necessario effettuare l'accesso per copiare la chiave, non si ha accesso al computer remoto (autenticazione chiave e password non valida disabilitata):

Riattiva l'autenticazione passwd in / etc / ssh / sshd_config:

PasswordAuthentication yes

Quindi riavviare il servizio:

service sshd restart

Copia la tua chiave pubblica:

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]

Prova ad accedere nuovamente, non è richiesta alcuna password.

Quindi disabilitare l'autenticazione con password.


Cosa succede se imposto PasswordAuth su yes nel server a cui voglio accedere e posso collegarmi con putty usando la password, ma ssh-copy-id continua a non chiedere la password e scrive solo Autorizzazione negata (chiave pubblica). ?
Darius.

ehi voglio dire grazie !!! mi hai salvato la giornata !!! grazie mille!!!
尤川豪

Grazie a @Nabil, funziona anche con Ubuntu 18.04. Solo un avvertimento per i futuri lettori: Modifica / etc / ssh / sshd_config secondo le istruzioni e NON ssh_config, per sviamento (come ho fatto io!). Inoltre, ssh-copy-id USER @ HOST è evidentemente sufficiente.
Snidhi Sofpro,

12

Permission denied (publickey) è il server SSH remoto che dice "Accetto solo le chiavi pubbliche come metodo di autenticazione, vattene".

Questa è la tua sfida principale: entrare nel sistema remoto. Una volta che puoi farlo, puoi caricare la tua chiave:

  • Utilizzando ssh-copy-id: ti consentirà di specificare una chiave diversa se, ad esempio, stai sostituendo quella precedente.
  • Modifica l'utente remoto ~/.ssh/authorized_keysper aggiungere manualmente la chiave.

5

Trovato finalmente il problema.

In realtà non avevo bisogno di copiare la chiave pubblica. La stessa chiave pubblica è per entrambe le chiavi private - con passphrase e senza passphrase. Pensavo di avere una chiave privata senza passphrase, ma in realtà non l'ho fatto. Ho avuto solo .ppk senza passphrase. Questa era la mancanza di comunicazione. Quindi il collega ha creato la chiave privata senza passphrase e così ora ho potuto accedere usando ssh senza passphrase. Ho letto che avere senza passphrase è male, ma il collega dice che va bene. Avevo bisogno senza passphrase perché ho bisogno di eseguire script di shell al riavvio - Voglio avviare l'autossh al riavvio del computer.

Quindi questa volta è un tipo di soluzione - se si desidera accedere senza passphrase - verificare se la propria chiave privata è davvero senza passphrase.

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.