Échec de l'authentification ssh Vagrant

147

Le problème avec l'authentification ssh:

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...

Je peux Ctrl+Csortir de la boucle d'authentification, puis ssh avec succès manuellement.

J'ai effectué les étapes suivantes sur la boîte d'invité:

  • Activé Remote Loginpour All Users.

  • Créé le ~/.sshrépertoire avec des 0700autorisations.

  • Créé le ~/.ssh/authorized_keysfichier avec les 0600autorisations.

  • Collé cette clé publique dans~/.ssh/authorized_keys

J'ai également essayé d'utiliser un réseau privé (hostonly) au lieu du réseau public (ponté), en utilisant cette ligne dans le Vagrantfile:

config.vm.network "private_network", ip: "172.16.177.7"

J'obtiens la même sortie (sauf Adapter 2: hostonly) mais je ne peux pas ssh manuellement.

J'ai aussi essayé config.vm.network "private_network", ip: "10.0.0.100".

J'ai également essayé de mettre config.ssh.passworddans le Vagrantfile. Cela produit SSH auth method: passwordmais ne s'authentifie toujours pas.

Et j'ai également essayé de reconstruire la boîte et de revérifier tout ce qui précède.

Il semble que d' autres aient réussi avec cette configuration , il doit donc y avoir quelque chose que je fais mal.

J'ai trouvé ce fil et activé l'interface graphique, mais cela n'aide pas.

ic3b3rg
la source

Réponses:

1

Assurez-vous que votre première interface réseau est NAT. L'autre deuxième interface réseau peut être tout ce que vous voulez lorsque vous construisez la boîte. N'oubliez pas l'utilisateur Vagrant, comme indiqué dans le fil de discussion Google.

Bonne chance.

user3509054
la source
172

Pour des informations générales: par défaut pour ssh-connect, vous pouvez simplement utiliser

utilisateur: vagrantmot de passe:vagrant

https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user

Tout d'abord, essayez: pour voir ce que vagrant insecure_private_keyest dans la configuration de votre machine

$ vagrant ssh-config

Exemple:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

Deuxièmement, faites: changez le contenu du fichier insecure_private_keyavec le contenu de votre clé privée système personnelle

Ou utilisez: Ajoutez-le au Vagrantfile:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path est votre clé privée locale
  2. Votre clé privée doit être disponible pour l'agent ssh local. Vous pouvez vérifier avec ssh-add -L. S'il n'est pas répertorié, ajoutez-le avecssh-add ~/.ssh/id_rsa
  3. N'oubliez pas d'ajouter votre clé publique ~/.ssh/authorized_keyssur la VM Vagrant. Vous pouvez le faire par copier-coller ou en utilisant un outil comme ssh-copy-id (utilisateur: rootmot de passe: vagrantport: 2222)ssh-copy-id '-p 2222 [email protected]'

Si cela ne fonctionne toujours pas, essayez ceci:

  1. Supprimer le insecure_private_keyfichier dec:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. Run vagrant up(vagrant générera un nouveau insecure_private_keyfichier)

Dans d'autres cas, il est utile de définir simplement forward_agent dans Vagrantfile :

Vagrant::Config.run do |config|
   config.ssh.forward_agent = true
end

Utile:

La configuration de git peut se faire avec git-scm.com

Après avoir configuré ce programme et créé la clé privée du système personnel, vous trouverez le chemin de votre profil:c:\users\USERNAME\.ssh\id_rsa.pub

PS: Enfin - vous suggérons de regarder Ubuntu sur Windows 10

Shilovk
la source
4
dans mon cas, c'était un problème car j'ai config.ssh.private_key_path = "~/.ssh/id_rsa"dû supprimer cette ligne pour que l'approvisionnement fonctionne
holms
Tout cela a fonctionné mais j'ai également dû supprimer mon entrée dans les hôtes connus. J'avais des problèmes lors du déplacement des lieux et de la connexion.
Pumphouse
@shilovk +1 Merci, merci, merci beaucoup. Le "Second, do" a fait l'affaire. Encore une fois, merci beaucoup mec.
whitesiroi
Celui-ci m'a orienté dans la bonne direction, dans mon cas, tout ce que j'avais à faire était de supprimer le fichier .vagrant / machines / default / virtualbox / private_key et après avoir exécuté vagrant, il a remplacé le fichier par le bon - je sauvegarderais le fichier juste au cas où
andrux
La première et la plus importante étape consiste à vérifier les paramètres de votre BIOS, assurez-vous que la virtualisation est activée.
Bahman.A
83

Aucune de ces réponses n'a fonctionné pour moi. D'une manière ou d'une autre, la boîte avait la mauvaise clé publique ajoutée dans le fichier authorised_keys de l' utilisateur vagrant .

Si vous pouvez toujours ssh sur la boîte avec le mot de passe vagrant (le mot de passe est vagrant), c'est à dire

ssh vagrant@localhost -p 2222

puis copiez le contenu de la clé publique de https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub dans le fichier authorised_keys avec la commande suivante

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

Une fois terminé, quittez la VM et essayez à nouveau vagrant ssh. Cela devrait fonctionner maintenant.

Bizmate
la source
4
exécuter vagrant reloadaprès la mise à jour du fichier allowed_keys. Vagrant détectera automatiquement la clé non sécurisée et la régénérera pour vous. Devrait fonctionner après.
ProfileTwist
47

Si vous rencontrez ce problème sur vagrant 1.8.5, consultez ce fil sur github:

https://github.com/mitchellh/vagrant/issues/7610

Cela est essentiellement causé par un problème d'autorisation, la solution de contournement est simplement

vagrant ssh 
password: vagrant 
chmod 0600 ~/.ssh/authorized_keys
exit

puis

vagrant reload 

Pour info: ce problème n'affecte que CentOS, Ubuntu fonctionne très bien.

Lei Xu
la source
Disons que j'ai 5 machines pour un fichier vagabond. Chaque fois que je relance, je dois le faire pour chaque machine. Est-ce que je corrige cela de manière permanente pour une configuration de vagabond donnée en utilisant des centos?
Pol
Il suffit de mettre à niveau vagrant vers la version 1.8.6 pour avoir 1.8.5 là où le bogue subsistait
Pol
42

Exécutez les commandes suivantes sur la machine invitée / VM:

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R vagrant:vagrant ~/.ssh

Alors arrêtez-vous vagabond. Cela supprimera et régénérera vos clés privées.

(Ces étapes supposent que vous avez déjà créé ou que vous avez déjà les répertoires ~ / .ssh / et ~ / .ssh / allowed_keys dans votre dossier personnel.)

Raja Ehtesham
la source
26

D'après mon expérience, cela a été un problème étonnamment fréquent avec les nouvelles machines vagabondes. Le moyen de loin le plus simple de le résoudre, au lieu de modifier la configuration elle-même, a été de créer les clés ssh requises manuellement sur le client, puis d'utiliser la clé privée sur l'hôte.

  1. Connectez-vous à vagrant machine:, vagrant sshutilisez le mot de passe par défaut vagrant.
  2. Créez des clés ssh: par exemple, ssh-keygen -t rsa -b 4096 -C "vagrant"( comme indiqué par le guide pertinent de GitHub ).
  3. Renommez le fichier de clé publique (par id_rsa.pub par défaut), remplaçant l'ancien: mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. Service de rechargement en cas nécessaire: sudo service ssh reload.
  5. Copiez le fichier de clé privée (par défaut id_rsa) sur la machine hôte: par exemple, utilisez une belle combinaison de chat et de presse-papiers cat .ssh/id_rsa, peignez et copiez (de meilleures façons doivent exister, allez en inventer une!).
  6. Déconnexion de la machine errante: logout.
  7. Trouvez la clé privée actuelle utilisée par vagrant en regardant sa configuration: vagrant ssh-config(cherchez par exemple ÌdentityFile "/[... </font>/private_key".
  8. Remplacez la clé privée actuelle par celle que vous avez créée sur la machine hôte: par exemple, nano /[...]/private_keyet collez-la à partir du presse-papiers, si tout le reste échoue. ( Notez , cependant, que si votre clé privée n'est pas spécifique au projet mais partagée par plusieurs machines vagabondes, vous feriez mieux de configurer vous-même le chemin afin de ne pas casser d'autres machines parfaitement fonctionnelles! Changer le chemin est aussi simple que d'ajouter une ligne config.ssh.private_key_path = "path/to/private_key"dans le fichier Vagrant. ) De plus, si vous utilisez une machine générée par PuPHPet , vous pouvez stocker votre clé privée dans un fichier puphpet/files/dot/ssh/id_rsaet elle sera ajoutée automatiquement à la configuration ssh de Vagrantfile.
  9. Testez la configuration: vagrant sshdevrait maintenant fonctionner.

Si tel est le cas, félicitez-vous, logoutcourez vagrant provisionsi nécessaire et poursuivez la tâche significative qui vous attend.

Si vous rencontrez toujours des problèmes, il peut être utile d'ajouter un indicateur détaillé à la commande ssh pour faciliter le débogage. Vous pouvez passer cela (ou toute autre option, d'ailleurs) après un double tiret. Par exemple, taper vagrant ssh -- -v. N'hésitez pas à ajouter autant de v que nécessaire, chacun vous donnera plus d'informations.

sankari
la source
Cette réponse m'a aidé. Juste pour partager mon expérience: d'une manière ou d'une autre (peut-être lors de l'installation de Capistrano mais ce n'est pas confirmé) mon fichier allowed_key avait été supprimé sur ma VM invitée. Le recréer en utilisant ces étapes a fonctionné et je peux maintenant ssh sans invite de mot de passe. Merci.
Martin Joiner
Après avoir supprimé les deux clés (publique / privée) de la machine hôte, j'ai pu refaire et résoudre ce processus
vrwired
L'utilisation de Git accélère le transfert de ce contenu de fichier.
prêt
1
celui-ci a fonctionné pour moi après tout ce que j'avais essayé, échoué .. merci beaucoup!
nikolas
Cela a fonctionné pour moi. La seule chose que j'ai faite de différent était de me ssh [email protected] -p 22 (password: vagrant)connecter à VM car cela vagrant sshne fonctionnait pas pour moi. 10.0.0.0est l'adresse IP privée que j'ai définie dans mon vagrantfile.
turrican_34
11

Cela peut également se produire si vous essayez de forcer votre VM à utiliser un utilisateur root par défaut pour SSH ...

Par exemple, une configuration comme celle-ci dans votre Vagrantfile peut provoquer cet échec:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

Solution: commentez ces lignes et réessayez!

Brad Parks
la source
2
pour moi, seuls les réglages config.ssh.username = "vagrant" et config.ssh.password = "vagrant" ont fait l'affaire
psychok7
8

Problème J'obtenais les erreurs d'authentification ssh, sur une boîte que j'ai approvisionnée. L'original fonctionnait bien.

Le problème pour moi était qu'il me manquait une clé privée .vagrant/machines/default/virtualbox/private_key. J'ai copié la clé privée du même emplacement relatif à partir de la boîte d'origine et de Viola!

GP89
la source
J'ajouterais que, comme tout bon développeur, nous enregistrons les .vagrantfichiers dans git ... et en tant que tel, un rapide git checkoutde ces fichiers sauve la journée!
Ian Vaughan
8

J'ai trouvé un moyen de contourner le désordre avec les touches sur Win 8.2 où je n'ai réussi avec aucune des méthodes mentionnées ici. Il peut être intéressant que la même combinaison de VirtualBox, Vagrant et la box fonctionne sur Win 7 Ultimate sans aucun problème.

Je suis passé à l'authentification par mot de passe en ajoutant les commandes suivantes dans Vagrantfile:

config.ssh.password = "vagrant"
config.ssh.insert_key = false

Notez que je ne suis pas sûr que ce soient les seuls changements nécessaires car je l'ai déjà fait:

  1. J'ai généré une nouvelle paire de clés RSA et modifié le fichier authorized_keys en conséquence (le tout dans la machine virtuelle, voir les suggestions ci-dessus et ailleurs)

  2. J'ai copié la clé privée dans le même répertoire où réside Vagrantfile et ajouté

     config.ssh.private_key_path = "./id_rsa"
    

Mais je pense que ces changements n'étaient pas pertinents. J'ai passé beaucoup de temps à essayer, donc je n'ai pas changé la configuration de travail pour des raisons évidentes :)

Michael
la source
5

Impossible de courir vagabond parce qu'il reste coincé et expire?

J'ai récemment eu un "incident d'eau dans un ordinateur portable" et j'ai dû migrer vers un nouveau (sur un MAC d'ailleurs).

J'ai réussi à mettre en place tous mes projets à côté de celui qui utilisait vagrant.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 8000 (guest) => 8877 (host) (adapter 1)
    default: 8001 (guest) => 8878 (host) (adapter 1)
    default: 8080 (guest) => 7777 (host) (adapter 1)
    default: 5432 (guest) => 2345 (host) (adapter 1)
    default: 5000 (guest) => 8855 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

Il n'a pas pu s'authentifier, a réessayé encore et encore et a finalement abandonné.

** Voici comment je l'ai remis en forme en 3 étapes: **

1 - Trouvez le IdentityFile utilisé par vagrant: $ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ned/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

2 - Vérifiez la clé publique dans IdentityFile: $ ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key Remplacez '<user-name>'par votre utilisateur. Cela ressemblera à quelque chose comme ceci:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3 - Connectez-vous à la machine vagabonde avec le mot de passe "vagrant": $ ssh -p 2222 -o UserKnownHostsFile=/dev/null [email protected]

The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is dc:48:73:c3:18:e4:9d:34:a2:7d:4b:20:6a:e7:3d:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
[email protected]'s password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

4 - Ajoutez la clé publique au fichier allowed_keys. $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5 - Sortez (crtl + d) et arrêtez le contenant vagabond et remontez-le. $ vagrant halt $vagrant up

J'espère que vous aurez les bras en l'air maintenant ...

J'ai obtenu ceci, avec juste une modification mineure, de l' article de Ned Batchelders - Ned vous êtes un champion !!

Anas
la source
Vous, monsieur, êtes un génie, ou Ned Batchelders l'est. Quoi qu'il en soit, cela a résolu mon problème!
Adsy2010
4

pour moi, cela a été résolu en changeant les permissions sur le dossier .ssh dans vagrant home directort (par exemple "~ vagrant / .ssh"). Je pense que j'ai gâché les autorisations lors de la configuration des clés ssh pour mon application.

Il semble que le fichier 'authorized_keys' ne doit être 'rw' que pour l'utilisateur 'vagrant' donc "chmod 600 allowed_keys"; il en va de même pour le répertoire lui-même et son parent:

alors:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

Ce n'est qu'après avoir restauré toutes ces autorisations que vagrant ssh a recommencé à fonctionner.

Je pense que c'est quelque chose à voir avec la sécurité ssh. Il refuse de reconnaître les certificats s'ils sont accessibles de quelque manière que ce soit au-delà de l'utilisateur actuel, les tentatives de connexion des vagabonds sont donc rejetées.

Robert
la source
Parfois, je ne peux pas changer, j'exécute simplement sudo chmod 600 authorized_keys mais cela reste inchangé. Je pense que cela a quelque chose à voir avec le fait qu'il est également partagé sur Windows.
Darius.V
Parfois, cela se produit si le répertoire est sur un partage, par exemple/vagrant/...
robert
1
En plus de ma réponse, j'aimerais voter pour cette réponse. Sur une autre de mes machines, c'était exactement ce problème - le mauvais propriétaire du répertoire /home/vagrant/.ssh. C'était "root: root" mais doit être "vagrant: vagrant"
Michael
4

Si vous utilisez la configuration SSH par défaut dans votre VagrantFile et que vous avez commencé à voir des erreurs d'authentification SSH après avoir réassocié votre boîte VM en raison d'un plantage, essayez de remplacer la clé publique dans votre machine vagabonde.

Vagrant remplace la clé publique associée à une paire de clés privées non sécurisées à chaque déconnexion pour des raisons de sécurité. Si vous n'avez pas correctement arrêté votre machine, la paire de clés publique / privée peut se désynchroniser, provoquant une erreur d'authentification SSH.

Pour résoudre ce problème, chargez simplement la clé privée non sécurisée actuelle, puis copiez la paire de clés publiques dans le fichier allowed_keys de votre machine virtuelle.

merci
la source
3

C'est peut-être la dernière réponse de la liste mais cela a fonctionné pour moi et je n'ai trouvé cette réponse nulle part, je l'ai trouvée moi-même après 2 jours de recherches, donc vous feriez mieux d'essayer cela si rien d'autre n'a fonctionné pour vous jusqu'à présent.

Dans mon cas, le problème venait de ma VirtualBox. Je ne sais pas pour quelle raison une option a été désactivée et elle aurait dû être activée.

entrez la description de l'image ici

Comme vous pouvez le voir sur l'image, il y avait des problèmes de réseau avec ma VirtualBox et ce que je devais faire pour résoudre ce problème était de sélectionner ma machine, appuyez sur les paramètres, l'onglet réseau et ensuite assurez-vous que l'option Câble connecté a été choisi. Dans mon cas, cette option n'a pas été sélectionnée et j'ai échoué à cette étape:

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

J'ai d'abord pensé que le port était déjà utilisé, après cela j'ai réinstallé Vagrant et j'ai également essayé d'autres choses mais aucune d'elles n'a fonctionné pour moi.

paulalexandru
la source
3

Cela m'est arrivé plusieurs fois et la façon dont je l'ai résolu était:

  1. Vérifiez et assurez-vous que votre Vagrantfile a le bon chemin de clé privée:

    config.ssh.private_key_path = "/home/razvan/.ssh/id_rsa"

  2. Exécuter la commande> vagrant ssh dans un terminal Linux

  3. Sur votre machine vagabonde, allez à

    cd /home/vagrant/.ssh

et vérifiez si la clé ssh dans le fichier authorized_keys est la même que celle que vous avez sur votre machine locale dans ~ / .ssh / id_rsa.pub. Sinon, remplacez celui de vos clés_autorisées vagrant par celui de votre machine locale qui se trouve dans ~ / .ssh / id_rsa.pub.

  1. Recharger Vagrant:

    recharge vagabond

J'espère que ceci aide quelqu'un d'autre. À votre santé!

Razvan
la source
Je n'ai pas de dossier ~ / .ssh alors que dois-je faire ??
Ashish Karpe
@AshishKarpe le crée avec la permission 700 et crée un authorized_keysfichier avec la permission 600 à l'intérieur.
hogan
3

1. Localisez la clé privée dans l'hôte:

vagrant ssh-config
#

Production:

Host default
  ...
  Port 2222
  ...
  IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
  ...

2. Stockez le chemin de la clé privée et le numéro de port dans des variables:

Utilisez ces deux commandes avec la sortie ci-dessus:

pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#

3. Générez une clé publique et téléchargez-la sur la machine invitée:

Copie / pâtes, aucune modification nécessaire:

ssh-keygen -y -f $pk > authorized_keys
scp -P $port authorized_keys vagrant@localhost:~/.ssh/
vagrant ssh -c "chmod 600 ~/.ssh/authorized_keys"
rm authorized_keys
#
Nabil Kadimi
la source
1
J'ai eu le problème décrit tant de fois, généralement après l'emballage, puis la restauration de la boîte Vagrant. Ce qui a fonctionné pour moi, c'est d'ajouter la configuration suivante afin de demander à Vagrant d'insérer sa clé publique dans la machine virtuelle: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueMais cette fois, la configuration ci-dessus n'a rien fait. Je ne sais pas vraiment pourquoi, j'ai essayé de déboguer pourquoi la clé n'est pas insérée sans chance. Alors je me suis rabattu sur votre solution et voilà! Ça marche!
stz184
2

Solution Mac:

  1. Ajout de la clé ssh id_rsa locale à la clé privée vagrant

    vi /Users//.vagrant/machines/default/virtualbox/private_key

    /Users//.ssh/id_rsa

  2. copie de la clé publique /Users//.ssh/id_rsa.pub sur vagrant box authorised_keys

ssh vagrant@localhost -p 2222 (mot de passe: vagrant) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

Problème résolu.

Grâce à

Parag Lohiya
la source
1

ne pouvait pas non plus aller au-delà:

par défaut: méthode d'authentification SSH: clé privée

Lorsque j'ai utilisé l'interface graphique de VirtualBox, cela m'a dit qu'il y avait une incompatibilité de processeur du système d'exploitation.

Pour que vagrant progresse plus loin, dans les paramètres du BIOS, j'ai dû contre-intuitivement:

Désactiver: virtualisation

Activer: VT-X

Essayez de basculer ces paramètres dans votre BIOS.

En boutique
la source
1

Tout d'abord, vous devez supprimer le fichier insecure_private_key généré automatiquement, puis régénérer ce fichier en tapant

vagrant ssh-config

puis

vagrant halt
vagrant up

Ça devrait marcher

Ahmet Karakaya
la source
J'ai essayé cela, mais j'obtiens toujours une erreur est-ce parce que j'utilise Ubuntu Virtual Box VM à l'intérieur que j'essaye vagrant?
Ashish Karpe
#vagrant up Amener la machine 'default' avec le fournisseur 'virtualbox' ... ==> default: Effacement de tous les ports transférés précédemment définis ... ==> default: Effacement de toutes les interfaces réseau précédemment définies ... ==> default: Préparation des interfaces réseau en fonction de la configuration ... par défaut: Adaptateur 1: nat ==> par défaut: Ports de transfert ... par défaut: 22 (invité) => 2222 (hôte) (adaptateur 1) ==> par défaut: Démarrage de la VM .. . ==> par défaut: En attente du démarrage de la machine. Cela peut prendre quelques minutes ... par défaut: adresse SSH: 127.0.0.1:2222 par défaut: nom d'utilisateur SSH: vagrant par défaut: méthode d'authentification SSH: clé privée
Ashish Karpe
1

J'ai résolu le problème de la manière suivante. 1. Créez une nouvelle clé SSH à l'aide de Git Bash

$ ssh-keygen -t rsa -b 4096 -C "vagrant@localhost"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
  1. Lorsque vous êtes invité à «Entrer un fichier dans lequel enregistrer la clé», appuyez sur Entrée. Cela accepte l'emplacement du fichier par défaut.

    Entrez un fichier dans lequel enregistrer la clé (/Users/[vous </font>/.ssh/id_rsa): [Appuyez sur Entrée]

  2. À l'invite, saisissez une phrase secrète sécurisée. Vous pouvez laisser vide et appuyer sur Entrée si vous n'avez pas besoin de mot de passe.

    Entrez un fichier dans lequel enregistrer la clé (/Users/[vous </font>/.ssh/id_rsa): [Appuyez sur Entrée]

  3. Pour vous connecter à votre machine virtuelle Vagrant, tapez la commande suivante

    ssh vagrant @ localhost -p 2222

Lorsque vous obtenez le message suivant, tapez «oui» et appuyez sur Entrée.

The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
  1. Maintenant, pour établir un type de connexion SSH: $ vagrant ssh

  2. Copiez la clé publique de l'hôte dans le fichier allowed_keys de Vagrant VM. Pour cela, allez dans le dossier «Users / [you] /. Ssh» et copiez le contenu du fichier id_rsa.pub sur la machine hôte et collez-le dans le fichier «~ / .ssh / allowed_keys» de la VM Vagrant.

  3. Modifier l'autorisation sur le dossier SSH et le fichier authorized_keys dans Vagrant VM
  4. Redémarrez vagrant avec: $ vagrant reload
Krishna
la source
0

J'ai démarré la machine, puis:

vagrant ssh-config

J'ai obtenu ce qui suit:

Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa IdentityFile /Users/my-user-name/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

Puis j'ai couru

cat ~/.ssh/id_rsa > /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa

Machine démarrée à partir d'ici

  • El Capitan 10.11.1 bêta (15B38b)
  • Boîte virtuelle 5.0.8 r103449
  • Vagrant 1.7.4
Radek
la source
0

Entre toutes les réponses ici, il y a beaucoup de bonnes choses à essayer. Par souci d'exhaustivité, si vous

ssh vagrant@localhost -p 2222

comme @Bizmate le suggère, et cela échoue, assurez-vous d'avoir

AllowUsers vagrant

dans la /etc/ssh/sshd_configmachine de votre invité / vagabond.

Don Smith
la source
0

J'utilise Vagrant avec une configuration Puphpet à partir de mai 2015 et j'ai eu ce problème. Il semble que la configuration qui a été générée ne gère pas le comportement de Vagrant 1.7.4 (ou peut-être un peu plus tôt?) De régénération des clés ssh s'il détecte une clé non sécurisée.

Je l'ai résolu en ajoutant ce qui suit dans mon Vagrantfile généré par Puphpet (configuration locale) à l'intérieur de la clause "if File.file? (CustomKey)":

config.ssh.insert_key = false

Référence commit

Elias Kouskoumvekakis
la source
0

Ce sont toutes les étapes correctes que j'ai suivies pour résoudre ce problème ci-dessous lors de l'exécution de la commande vagrant up.

Ce sont les étapes que j'ai suivies

  1. créer un dossier. par exemple F: \ projets
  2. Ouvrez ce dossier dans git bash et exécutez cette commande ssh-keygen -t rsa -b 4096 -C "[email protected]" (mettez une adresse email valide)
  3. Puis générer une paire de clés dans deux fichiers séparés dans le dossier du projet. par exemple project (fichier de clé privée), project.pub (fichier de clé publique)
  4. Accédez à cet emplacement C: \ Users \ acer.vagrant.d et recherchez le fichier insecure_private_key
  5. Obtenez une sauvegarde du fichier et copiez le contenu de la clé privée nouvellement créée et collez-le dans le fichier insecure_private_key. Copiez ensuite insecure_private_key et collez-le également à cet emplacement.
  6. Maintenant vagabondez dans l'emplacement de votre projet. après avoir généré le problème ci-dessus, tapez vagrant ssh et entrez en donnant le nom d'utilisateur, le mot de passe. (par défaut, le nom d'utilisateur et le mot de passe sont définis comme vagabonds)
  7. Accédez à cet emplacement cd /home/vagrant/.ssh et tapez mv allowed_keys allowed_keys_bk
  8. Tapez ensuite ls -al et tapez vi authorised_keys pour ouvrir l'éditeur de fichier allowed_keys vi.
  9. Ouvrez la clé publique générée à partir de notepad ++ (project.pub) et copiez le contenu.Appuyez ensuite sur i sur git bash pour activer le mode d'insertion sur l'éditeur vi et faites un clic droit et collez. Après avoir appuyé sur échapper pour sortir du mode insertion
  10. : wq! pour enregistrer le fichier et tapez ls -al
  11. Ensuite, les autorisations sont définies comme ci-dessous, il n'est pas nécessaire de changer drwx ------. 2 vagabonds vagabonds 4096 13 février 15:33. drwx ------. 4 vagabonds vagabonds 4096 13 février 14:04 .. -rw -------. 1 vagabond vagabond 743 13 février 14:26 clés_autorisées -rw -------. 1 root root 409 13 février 13:57 authorized_keys_bk -rw -------. 1 vagrant vagrant 409 Jan 2 23:09 allowed_keys_originial Sinon, tapez chmod 600 allowed_keys et tapez cette commande trop chown vagrant: vagrant allowed_keys
  12. Enfin, exécutez la halte du vagabond et le vagabond à nouveau.

************************ CECI EST UN TRAVAIL BIEN POUR MOI ******************** ***********

Vayodya Tamari
la source
0

Juste pour ces gens qui ont été des idiots comme moi, ou qui ont eu quelque chose d'étrange dans leur machine à vagabonder. Cette erreur peut également se produire lorsque vous avez modifié les autorisations du répertoire personnel de l'utilisateur vagabond (délibérément ou par accident).

Vous pouvez vous connecter à la place (comme décrit dans d'autres articles) en utilisant le mot de passe ('vagrant'), puis exécuter la commande suivante pour corriger les autorisations.

sudo chown -R vagrant:vagrant /home/vagrant

Ensuite, vous devriez pouvoir vous reconnecter sans entrer le mot de passe.

TL; DR: Les autorisations sur votre dossier d'accueil vagrant sont incorrectes.

Aeolun
la source
0

Facile:

homestead destroy
homestead up

Modifier (pas aussi simple que prévu):

Le problème était que les nouvelles versions de la ferme utilisaient php7.0et d'autres choses. Pour éviter ce gâchis, assurez-vous de définir le verisondans Homestead.yml:

version: "0"
Stephen
la source
0

J'ai résolu ce problème en exécutant des commandes sur Windows 7 CMD comme indiqué ici voici le lien dernier post sur ce fil,

https://github.com/mitchellh/vagrant/issues/6744

Some commands that will reinitialize various network states:
Reset WINSOCK entries to installation defaults : netsh winsock reset catalog
Reset TCP/IP stack to installation defaults : netsh int ip reset reset.log
Flush DNS resolver cache : ipconfig /flushdns
Renew DNS client registration and refresh DHCP leases : ipconfig /registerdns
Flush routing table : route /f
Shehzad Nizamani
la source
0

Cela me bat la tête depuis quelques jours sur une boîte de base reconditionnée. (Mac OS X, El Capitan)

En suivant la procédure de @Radek, j'ai fait 'vagrant ssh-config' sur la boîte source et j'ai obtenu:

...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...

Sur la nouvelle copie, cette commande m'a donné:

...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...

Donc, je viens d'ajouter cette ligne dans la nouvelle copie:

...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...

Pas parfait, mais je peux continuer ma vie.

Rickb
la source
0

Autre solution simple, sous windows, allez dans le fichier Homestead / Vagrantfile et ajoutez ces lignes pour vous connecter avec un nom d'utilisateur / mot de passe au lieu d'une clé privée:

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Donc, finalement, une partie du fichier ressemblera à ceci:

if File.exists? homesteadYamlPath then
    settings = YAML::load(File.read(homesteadYamlPath))
elsif File.exists? homesteadJsonPath then
    settings = JSON.parse(File.read(homesteadJsonPath))
end

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Homestead.configure(config, settings)

if File.exists? afterScriptPath then
    config.vm.provision "shell", path: afterScriptPath, privileged: false
end

J'espère que cette aide ..

Mahmoud Mostafa
la source
0

J'ai essayé ceci sur ma machine VM

changer les permissions / home / vagrant (fait un chmod 700 dessus)

maintenant je peux ssh directement dans mes boîtes

ajay_fuel_stock_lamp_stack
la source