2015-11-10 6 views
3

В рамках подготовки к адаптации сценария развертывания ткани для работы с локальной Vagrant VM я пытаюсь убедить виртуальную машину разрешить мне SSH, не используя vagrant ssh. Я продолжаю получать ошибки.Не может SSH в Vagrant VM (без использования бродячего 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 

Если я пытаюсь SSH в использовании ключевой файл и IP-адрес, я получил отказ:

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

Если я попробую то же самое с [email protected] вместо [email protected] Я получаю отказ проверки ключа хоста.

Что мне здесь не хватает?

ответ

3

Хост ключ неудаче проверки

Это функция безопасности SSH, который пытается остановить человека в середине атак, прежде чем они произойдут.

Ваш компьютер, последний раз, когда он ssh'd в этот бродячий ящик, сохранил копию подписи серверов; когда вы сейчас подключаетесь, скорее всего, после пересоединения вы подключаетесь к одному и тому же физическому адресу, а теперь подписи не совпадают.

Чтобы очистить устаревшие записи, вы можете найти их в простом текстовом файле ~/.ssh/known_hosts на клиентском устройстве (устройство, которое вы пытаетесь SSH из).

+1

Уверенный достаточно. Спасибо! –

0

Использование UserKnownHostsFile вариант предпочтительнее, чем удалить файл ~/.ssh/known_hosts, чтобы предотвратить провал проверки хоста. То есть:

ssh -o UserKnownHostsFile=/dev/null -i <private-key-path> \ 
-p 2222 [email protected] 

Удаление known_hosts может быть недостаток безопасности, если вы работаете с неуправляемым. внешние серверы (удаленные, общедоступные). Создание исключения на вашем локальном vm имеет смысл, поскольку оно находится под вашим полным контролем.

Смежные вопросы