Vagrant自制box啓動時Authentication failure

錯誤原因

vagrant up執行日誌:
這裏寫圖片描述
vagrant管理了一個官方的keypair, 預先放在box中一個公鑰,私鑰被vagrant管理着。vagrant up的時候,第一次登錄虛擬機就是使用這個官方提供的keypair.
當登錄入虛擬機前,vagrant在宿主機生成一個新的keypair, 然後將虛擬機中的公鑰替換爲新的這個,然後私鑰放在宿主機。

之所以有這個替換公鑰的過程。是爲了安全考慮,如果都使用官方的公鑰,那麼虛擬機可以被其他人登錄。很不安全。

不安全的authorized_keys:
這裏寫圖片描述
安全的authorized_keys:
這裏寫圖片描述

當製作box的時候,這個裏面的公鑰已經是安全的那個,所有制作後的box載vagrant ssh的時候自然認證不了。

解決方式

從virtualbox軟件進入虛擬機,雖然認證錯誤,但是虛擬機已經啓動起來了,只是沒有ssh登錄進去,可以通過密碼登錄(用戶:vagrant 密碼:vagrant 但是虛擬機的sshd_config配置不能使用密碼登錄)。

從virtualbox進入虛擬機後,將官網提供的不安全公鑰寫入虛擬機中
另一種是將官網提供的公鑰寫入虛擬機中:

sudo -u vagrant wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O   /home/vagrant/.ssh/authorized_keys

authorized_keys的權限必須設置成除了屬主vagrant以外,group和其他用戶都不可寫狀態:

chmod go-w /home/vagrant/.ssh/authorized_keys

virtualbox上關閉虛擬機,然後重新打包

vagrant halt
vagrant package --basevirtual box顯示的虛擬機名字 --output 打包出來的box的名字

vagrant box add 打包出來的box的名字  顯示的box名字

ssh 詳細介紹:
https://www.jianshu.com/p/33461b619d53

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章