簡體   English   中英

無法SSH到Vagrant VM(不使用vagrant ssh)

[英]Can't SSH into Vagrant VM (without using vagrant ssh)

為了使面料部署腳本適應本地Vagrant VM,我試圖說服VM讓我在沒有使用vagrant ssh情況下使用它進行vagrant ssh 我一直在收到錯誤。

我嘗試了很多不同的設置組合,但這里是最新的Vagrant文​​件:

Vagrant.configure(2) do |config|

  config.vm.provider "virtualbox" do |v|
    v.memory = 6144
    v.cpus = 2
    v.name = "mb_vagrant"
  end

  config.vm.box = "ubuntu/trusty64"

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

  config.ssh.forward_agent = true

  config.vm.provision :shell, path: "bootstrap.sh"
  config.vm.network :forwarded_port, host: 8001, guest: 8001

end

vagrant ssh-config告訴我:

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/sloan/code/vagrant/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL
  ForwardAgent yes

如果我嘗試使用密鑰文件和我設置的IP進行SSH,我會拒絕連接:

> ssh -i /Users/sloan/code/vagrant/.vagrant/machines/default/virtualbox/private_key -p 2222 vagrant@192.168.33.10
ssh: connect to host 192.168.33.10 port 2222: Connection refused

如果我使用vagrant@127.0.0.1而不是vagrant@192.168.33.10嘗試相同的vagrant@192.168.33.10我收到主機密鑰驗證失敗。

我在這里錯過了什么?

主機密鑰驗證失敗

這是ssh的一個安全功能,它試圖在中間發生攻擊之前阻止它。

你的計算機,上次它進入那個流浪盒,存儲了服務器簽名的副本; 當您現在連接時,很可能在重建之后,您將連接到相同的物理地址,並且簽名現在不匹配。

要清除舊條目,您可以在純文本文件中找到他們~/.ssh/known_hosts的客戶端設備(您試圖使用SSH設備)上。

使用UserKnownHostsFile選項優先於刪除~/.ssh/known_hosts文件以防止主機驗證失敗。 即:

ssh -o UserKnownHostsFile=/dev/null -i <private-key-path> \
-p 2222 vagrant@127.0.0.1

如果您使用非托管,刪除known_hosts可能是一個安全漏洞。 外部服務器(遠程,公共)。 在您的本地虛擬機上進行例外是有道理的,因為它完全由您完全控制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM