2017-05-05 61 views
0

我正在使用Vagrant運行4個虛擬機。我Vagrantfile看起來是這樣的:已刪除.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 

一切工作完美,直到我無意中從我的項目目錄中刪除的文件夾.vagrant

首先,我嘗試將我的VMs ID放回.vagrant/machines/${name}/virtualbox/id。運行vagrant status的確看到我的虛擬機已啓動並正在運行,但我無法再通過SSH連接。

我尋找一個解決方案,但找不到一個解決方案,所以我決定銷燬並重新啓動我的虛擬機。可悲的是,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]27.0.0.1連接到我的虛擬機,以及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 

我能做些什麼,以便能夠再次運行虛擬機,利用流浪?

+0

'127.0.0.1:2222'是流浪者使用的正確url,vagrant在第一次運行ssh連接時並未在VM上設置IP。你可以通過virtualbox連接到虛擬機嗎? (流浪者/流浪者作爲用戶/密碼)並檢查'/ home/vagrant/.ssh'文件夾的權利 –

+0

你需要vnc或其他東西登錄到你的遠程服務器並打開虛擬框 - 如果你需要檢查ssh對,你不能發起SSH連接 –

+0

我已經能夠使用簡單的SSH命令連接到我的虛擬機,我編輯了我的問題來回答你的問題。權利似乎沒問題。 – Sunder

回答

0

TL; DR:不要修改~/.vagrant.d/insecure_private_key

雖然試圖解決第一個問題(放回在.vagrant虛擬機ID後無法連接到虛擬機),我發現了一個帖子,告訴某處這是一個文件流浪者不安全的私鑰,位於~/.vagrant.d/insecure_private_key

我試圖把一個自定義的私鑰放在那裏,這就是爲什麼它後來無法使用vagrant up。

解決的辦法是在這裏找到默認的流浪不安全私鑰:https://github.com/mitchellh/vagrant/tree/master/keys,並將其放回~/.vagrant.d/insecure_private_key