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.
id_rsa
? Mi aspettereissh-copy-id
di 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.bak
esso probabilmente userebbeid_rsa.pub.bak.pub
.