Je veux mettre en place un tunnel ssh vers le serveur mysql qui se trouve dans l'ordinateur possédant une machine virtuelle. De plus, le tunnel doit fonctionner si la machine est redémarrée.
Donc disons A est un ordinateur avec un logiciel linux. B - une machine virtuelle dans l'ordinateur A.
MySQL se trouve dans B.
C - est une machine virtuelle dans l'ordinateur A qui veut se connecter à MySQL dans B.
Maintenant, grâce à cet article : http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
J'essaie de copier la clé publique sur le serveur distant. Je suppose que je dois la copier sur l'ordinateur A.
ssh-copy-id -i id_rsa.pub.bak [utilisateur]@[IP de A] -p [port de A]
Entrez le mot de passe pour la clé '/home/[utilisateur]/.ssh/id_rsa':
Permission refusée (clé publique).
J'ai essayé d'entrer le mot de passe du fichier id_rsa.pub.bak. Il l'a refusé.
Ensuite, je vois qu'il utilise la clé dans /home/[utilisateur]/.ssh/id_rsa qui est différente de la clé publique que j'essaie de copier, je veux dire bien sûr que la clé privée est différente, mais je veux dire que je copie une clé publique d'une autre clé privée. Donc j'ai essayé en utilisant le mot de passe de celle-ci. Toujours refusé.
Comment pourrais-je déboguer pourquoi le mot de passe est refusé?
Mise à jour
En me basant sur les commentaires, j'ai créé un nouveau fichier public appelé id_rsa.pub où tout est sur une seule ligne maintenant
et j'ai essayé à nouveau et j'obtiens toujours une erreur.
ssh-copy-id -i id_rsa.pub [hôte et port] -vvv
Entrez le mot de passe pour la clé '/home/[utilisateur]/.ssh/id_rsa':
Permission refusée (clé publique).
Mise à jour
J'ai vérifié les autorisations du dossier .ssh et du fichier authorized_keys sur l'ordinateur A - ils sont à 700 et 600 comme le commentaire le dit donc ils sont bons.
Mise à jour
J'ai essayé de paramétrer l'authentification par mot de passe sur l'ordinateur A et de redémarrer le service. Le redémarrage comme indiqué dans la réponse n'a pas fonctionné, cela a écrit sshd non reconnu, donc j'ai redémarré en utilisant:
sudo /etc/init.d/ssh restart
Ensuite j'ai essayé à nouveau sur la machine C de copier vers la machine A.
ssh-copy-id -i id_rsa.pub [utilisateur@hôte] -p [port] -v
et toujours le même résultat:
Entrez le mot de passe pour la clé '/home/[utilisateur]/.ssh/id_rsa':
Permission refusée (clé publique).
Si je vais copier la clé manuellement dans authorized_keys, je vois que la clé publique est déjà existante, la même que celle que je veux copier. J'ai demandé à mon collègue, il a dit qu'il ne l'avait pas copiée. Donc je ne comprends même pas comment elle peut être là.
D'accord, si elle est là ce serait bien, mais en restant là elle ne me permet pas de me connecter en ssh sans entrer de mot de passe. Mais j'ai pu me connecter en entrant le mot de passe. Donc quelque chose ne va clairement pas ici. Et la clé que j'essaie de copier est sans mot de passe. Quand je me suis connecté avec ssh - j'ai entré un mot de passe qui n'était pas vide.
La même clé publique ne peut pas accepter à la fois un mot de passe vide et un mot de passe non vide, ça a du sens. Mais alors pourquoi la clé publique que j'essaie de téléverser est la même que celle dans le fichier authorized_keys si les mots de passe sont différents? Je n'ai pas vérifié chaque caractère, mais il est peu probable que les clés soient si similaires que le début et la fin seraient les mêmes même lorsque les mots de passe sont différents je pense.