2017-05-05 14 views
0

4つのVMを実行するためにVagrantを使用しています。私Vagrantfileは、このようになります:私は誤って自分のプロジェクトディレクトリから.vagrantフォルダを削除するまで削除された.vagrantディレクトリが私をSSHから守る

Vagrant.configure(2) do |config| 
    config.vm.box = "bento/centos-7.2" 
    config.vm.synced_folder "data", "/vagrant" 

    # Master1 
    config.vm.define :master1 do |m1| 
    m1.vm.hostname = "master1.mycluster" 
    m1.vm.network :private_network, ip: "192.168.0.12" 
    m1.vm.provider :virtualbox do |vb| 
     vb.memory = "8192" 
    end 
    m1.vm.network "forwarded_port", guest: 50070, host: 50070 
    end 

    # Other machines are defined in the same way 
end 

すべてが、完璧に働いていました。

まず、VM IDを.vagrant/machines/${name}/virtualbox/idに戻してみました。 vagrant statusを実行すると、自分のVMが起動していると表示されましたが、もうSSH経由で接続できませんでした。

解決策を探しましたが見つかりませんでしたので、VMを破棄して再起動することにしました。悲しいことに、vagrant up(またはvagrant up --provision)のコマンドが、SSHへの接続を試行して、127.0.0.1:2222になりました。代わりに192.168.0.12:2222に接続しようとしていませんか?ここではコマンド出力です:

Bringing machine 'master1' up with 'virtualbox' provider... 
==> master1: Importing base box 'bento/centos-7.2'... 
==> master1: Matching MAC address for NAT networking... 
==> master1: Checking if box 'bento/centos-7.2' is up to date... 
==> master1: Setting the name of the VM: vagrant_master1_1493974030138_66977 
==> master1: Clearing any previously set network interfaces... 
==> master1: Preparing network interfaces based on configuration... 
    master1: Adapter 1: nat 
    master1: Adapter 2: hostonly 
==> master1: Forwarding ports... 
    master1: 50070 (guest) => 50070 (host) (adapter 1) 
    master1: 61888 (guest) => 61888 (host) (adapter 1) 
    master1: 18080 (guest) => 18080 (host) (adapter 1) 
    master1: 9995 (guest) => 9959 (host) (adapter 1) 
    master1: 8787 (guest) => 8787 (host) (adapter 1) 
    master1: 8088 (guest) => 8088 (host) (adapter 1) 
    master1: 22 (guest) => 2222 (host) (adapter 1) 
==> master1: Running 'pre-boot' VM customizations... 
==> master1: Booting VM... 
==> master1: Waiting for machine to boot. This may take a few minutes... 
    master1: SSH address: 127.0.0.1:2222 
    master1: SSH username: vagrant 
    master1: SSH auth method: private key 
    master1: Warning: Remote connection disconnect. Retrying... 
    master1: Warning: Authentication failure. Retrying... 

けれども、私はssh -p 2222 [email protected]をすることによって、私のVMに接続することができ、およびSSHフォルダは、権限の問題を持っていないようです。

[[email protected] ~]$ ls -la /home/vagrant/.ssh/ 
total 4 
drwx------. 2 vagrant root  28 1 déc. 15:56 . 
drwx------. 3 vagrant vagrant 90 1 déc. 15:57 .. 
-rw-------. 1 vagrant root 409 1 déc. 15:56 authorized_keys 

Vagrantを使用してVMを再度実行できるようにするにはどうすればよいですか?

+0

「127.0.0.1:2222」は、寄付者が使用する正しいURLです。寄付者は、VMが初めてssh接続を実行する際にIPを設定していません。あなたはvirtualboxを通してVMに接続できますか?/home/vagrant/.ssh'フォルダの右側を確認してください –

+0

リモートサーバにログインして仮想ボックスを開くにはvncなどが必要です - sshを確認する必要がある場合はあなたはssh接続を開始できません。 –

+0

シンプルなSSHコマンドを使用して私のVMに接続できました。あなたの質問に答えて質問を編集しました。権利はOKのようです。 – Sunder

答えて

0

TL; DR:(.vagrantでVMのIDをバック入れた後、VMに接続できませんでした)最初の問題を解決しようとする一方で~/.vagrant.d/insecure_private_key

を変更してはいけませんが、私はポストはどこかで言っていましたそれは~/.vagrant.d/insecure_private_keyにあるファイルの不自然なプライベートキーの問題であることが判明しました。

私はカスタム秘密鍵をそこに置こうとしましたが、それは後で汚れを使って動作しませんでした。

ここでの解決策は、デフォルトのVagrant非公開秘密鍵を見つけてhttps://github.com/mitchellh/vagrant/tree/master/keysとし、~/.vagrant.d/insecure_private_keyに戻すことでした。

関連する問題