- Вопрос или проблема
- Ответ или решение
- Решение проблемы с зависанием Vagrant на SSH с методом аутентификации: пароль
- 1. Убедитесь, что SSH подключение возможно
- 2. Проверьте настройки Vagrant
- 3. Установка публичного ключа SSH
- 4. Проблемы с сетью
- 5. Отключение антивирусов и брандмауэров
- 6. Обновление и перезагрузка
- Заключение
Вопрос или проблема
Я пытаюсь загрузить виртуальную машину через Vagrant. Это мой первый опыт в этом.
Я использую Windows 10 64bit и пытаюсь запустить MS Server 2016 стандарт.
Я создал новую виртуальную машину в VirtualBox и добавил стандарт MS2016.
Я создал бокс.
В PowerShell (как администратор) я ввожу vagrant up
, и проблема в том, что я получаю следующее сообщение об ошибке
Метод аутентификации SSH: пароль
Виртуальная машина все еще загружается, и я могу нажать CTRL ALT DELETE и войти без проблем. Однако окно PowerShell не продвигается дальше сообщения выше
Теперь это хорошо задокументировано на StackOverflow и GitHub, но все сообщения об этом очень старые. И моя проблема не решается тем, что я прочитал, что я попытаюсь объяснить здесь, не утомляя вас огромным списком.
И они сводятся к активации VT-X и обеспечению сетевого подключения
https://superuser.com/a/1051626/293658, где показано, что мне нужно включить VT-X (что я сделал), но отключить виртуализацию в BIOS. У меня нет возможности отключить виртуализацию в BIOS на материнской плате ASUS p8z77-v
https://www.vagrantup.com/docs/boxes/base.html предоставляет информацию о том, что мне нужно сделать для Windows, что я и сделал:
- Отключить UAC (включая редактирование реестра)
- Отключить сложные пароли
- Отключить “Мониторинг завершения работы”
- Отключить “Диспетчер сервера” при входе в систему (для не-Core)
На моем компьютере я отключил все антивирусные и брандмауэрные функции.
Единственный пункт, о котором я могу подумать, это то, что я не предоставил Vagrant никаких данных по имени пользователя/паролю, но администратор на виртуальной машине – (пользователь) vagrant и (пароль) vagrant
Я также попробовал использовать VagrantFile, так как многие жалуются на сетевой кабель, поэтому мой VagrantFile таков:
Vagrant.configure("2") do |config|
config.vm.provider "virtualbox" do |vb|
vb.gui = true
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false
vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
end
config.vm.provision 'Task', :type => 'shell', :path => "Task.ps1", :powershell_elevated_interactive => false
end
Когда виртуальная машина загружается через Vagrant, это нижняя панель инструментов, чтобы показать, что все части “работают”
Если я перехожу в Панель управления -> Программы и компоненты и выбираю из меню слева Включить или отключить функции Windows, это показывает, что Hyper-V не включен
Почему он не входит в мой рабочий стол Windows?
Версия VirtualBox 5.2.8
Версия Vagrant 2.0.2
SSH не включен в установщик Windows. Вам нужно “ssh.exe” в вашем Windows пути на vagrant box.
На vagrant box:
- Установите Git http://git-scm.com/downloads
- Выберите “Использовать Git и дополнительные инструменты Unix из командной строки Windows”.
ИСТОЧНИК: http://tech.osteel.me/posts/2015/01/25/how-to-use-vagrant-on-windows.html
Вам нужно поместить открытый ключ Vagrant, найденный в
github,
файл с именем vagrant.pub
, в SSH папку authorized_keys
.
Смотрите раздел "пользователь vagrant"
в
документации Vagrant.
В Linux эта папка находится в .ssh/authorized_keys
, а в Windows в
C:\Users\vagrant\.ssh\authorized_keys
,
Мой опыт:
- halt не сработал
- изменение различных параметров Vagrantfile не сработало
- destroy не сработал
- попробовать другую виртуальную машину не сработало
Перезагрузка Windows 10 помогла… Я должен был это представить!
Ответ или решение
Решение проблемы с зависанием Vagrant на SSH с методом аутентификации: пароль
Ситуация, с которой вы столкнулись, когда Vagrant зависает на этапе аутентификации через SSH с использованием пароля, может быть довольно распространенной среди пользователей Windows, особенно при запуске виртуальных машин на платформе VirtualBox. Рассмотрим практические решения и потенциальные причины возникновения этой проблемы, а также шаги по их устранению.
1. Убедитесь, что SSH подключение возможно
Проблемы с подключением по SSH бывают связаны с отсутствием необходимых компонентов или настройками сети. Поскольку вы используете Windows 10 и VirtualBox, сначала убедитесь, что на вашей виртуальной машине установлен SSH. Обычно это не входит в стандартные установки Windows, поэтому вам потребуется:
- Установить Git с помощью официального сайта Git.
- При установке выберите опцию "Использовать Git и дополнительные Unix утилиты из командной строки Windows". Это позволит вам использовать
ssh.exe
.
2. Проверьте настройки Vagrant
Ваш Vagrantfile выглядит в целом правильно, но проверьте, правильно ли настроены параметры SSH:
Vagrant.configure("2") do |config|
config.vm.provider "virtualbox" do |vb|
vb.gui = true
config.ssh.username = "vagrant"
config.ssh.password = "vagrant" # Возможно, убрать эту строку
config.ssh.insert_key = false
vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
end
config.vm.provision 'Task', type: 'shell', path: "Task.ps1", powershell_elevated_interactive: false
end
Обратите внимание, что использование пароля в Vagrantfile может не сработать, если SSH ключи настроены неправильно. Попробуйте удалить строчку с указанием пароля и убедитесь, что SSH ключи настроены правильно.
3. Установка публичного ключа SSH
Чтобы использовать SSH аутентификацию на основе ключей, вам необходимо добавить публичный ключ Vagrant в authorized_keys
вашего виртуального сервера. Обычно это делается следующими шагами:
- Скопируйте файл публичного ключа Vagrant, который обычно можно найти в репозитории Vagrant под именем
vagrant.pub
. - На виртуальной машине найдите папку
C:\Users\vagrant\.ssh\
и создайте файлauthorized_keys
, если он отсутствует. - Вставьте содержимое файла
vagrant.pub
в файлauthorized_keys
.
4. Проблемы с сетью
Убедитесь, что виртуальная сеть настроена правильно. Попробуйте использовать адаптер "NAT" или "Bridged Adapter" для виртуальной машины. Это может помочь в решении проблем с доступом.
5. Отключение антивирусов и брандмауэров
Вы упомянули, что отключили антивирусные программы и брандмауэры, однако рекомендуем еще раз проверить эти настройки. Ваша безопасность является важной, и даже временное отключение может помочь выявить источник проблемы.
6. Обновление и перезагрузка
Иногда простая перезагрузка системы может решить множество проблем. Не забудьте также обновить Vagrant и VirtualBox до последних версий, поскольку новые версии могут содержать критические исправления и улучшения.
Заключение
Если после выполнения всех предложенных шагов проблема все еще сохраняется, возможно, стоит рассмотреть возможность использования другой версии Vagrant или VirtualBox. К тому же, стоит обратить внимание на форумы и сообщество Vagrant, которые могут иметь более актуальную информацию и предложить решения на основе опыта других пользователей.
Подобные проблемы могут возникнуть в различных конфигурациях, однако большинство из них можно решить правильными настройками и проверками. Не забывайте шаг за шагом проходить по проверке всех предложенных аспектов, и вы, скорее всего, сможете восстановить функциональность вашей виртуальной машины.