8 ответов:
устранение:
Добавьте следующее к вашемуVagrantfile:config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'когда вы
vagrant sshотныне вы будете входить в систему какrootи следует ожидать следующее:==> mybox: Waiting for machine to boot. This may take a few minutes... mybox: SSH address: 127.0.0.1:2222 mybox: SSH username: root mybox: SSH auth method: password mybox: Warning: Connection timeout. Retrying... mybox: Warning: Remote connection disconnect. Retrying... ==> mybox: Inserting Vagrant public key within guest... ==> mybox: Key inserted! Disconnecting and reconnecting using new SSH key... ==> mybox: Machine booted and ready!Обновление 23-Jun-2015: Это работает и для версии 1.7.2. Безопасность ключа улучшилась с 1.7.0; этот метод переопределяет предыдущий метод, который использует известный закрытый ключ. Это решение не предназначено для использования в доступной коробке публично без надлежащих мер безопасности до публикации.
ссылки:
это полезно:
sudo passwd root...для тех, кто был пойман на необходимости установить пароль root в vagrant first
это работает, если вы находитесь на ubuntu / trusty64 box:
vagrant sshкак только вы находитесь в поле ubuntu:
sudo suтеперь вы пользователь root. Вы можете обновить пароль root, как показано ниже :
sudo -i passwdтеперь отредактируйте нижеприведенную строку в файле
/etc/ssh/sshd_configPermitRootLogin yesкроме того, удобно создать свой собственный альтернативный логин :
adduser johndoeподождите, пока он не запрашивает пароль.
если
Vagrantfileкак показано ниже:config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'но бродяга все равно спросит у вас пароль root, скорее всего, базовое поле, которое вы использовали, не настроено для разрешения корневого входа.
например, в официальном поле ubuntu14.04 не устанавливается
PermitRootLogin yesна/etc/ssh/sshd_config.поэтому, если вы хотите, чтобы поле могло войти в систему как корневой по умолчанию(только Vagrantfile, больше не работает), вам нужно :
настройка виртуальной машины по имени пользователя
vagrant(как бы то ни было, но корень)войти и редактировать файл конфигурации sshd.
ubuntu: edit
/etc/ssh/sshd_config, setPermitRootLogin yesorthers: ....
(я использую только ubuntu, не стесняйтесь добавлять обходные пути других платформ)
построить новую базовую коробку:
vagrant package --base your-vm-nameэто создать файл
package.boxдобавьте эту базовую коробку в vagrant:
vagrant box add ubuntu-root file:///somepath/package.boxзатем вам нужно использовать эту базовую коробку чтобы построить виртуальную машину, которая позволяет автоматически войти в систему как root.
уничтожить оригинальную виртуальную машину с помощью
vagrant destroyредактировать оригинал
Vagrantfile, измените имя коробки наubuntu-rootи имяroot, потомvagrant upсоздать новый.это стоило мне некоторого времени, чтобы выяснить, это слишком сложно, на мой взгляд. Надеюсь, что бродяга улучшит это.
Не забывайте, что root разрешен root для входа в систему раньше!!!
поместите код конфигурации ниже в файл /etc/ssh/sshd_config.
PermitRootLogin yes
Я знаю, это старый вопрос...но, глядя на исходный вопрос, похоже, что пользователь просто хотел запустить команду как root..это то, что мне нужно сделать, когда я искал ответ и наткнулся на этот вопрос.
Так что это стоит знать, на мой взгляд:
vagrant ssh servername-c "echo vagrant | sudo-s shutdown 0"
"бродяга" - это пароль, который повторяется в команде sudo, потому что, как мы все знаем, бродяга учетная запись имеет привилегии sudo, и когда вы sudo, вам нужно указать пароль учетной записи пользователя, а не root..и, конечно же, по умолчанию пароль бродячего пользователя - "vagrant" !
по умолчанию вам нужны корневые привилегии для завершения работы, поэтому я думаю, что завершение работы-хороший тест.
очевидно, вам не нужно указывать имя сервера, если есть только один для этой бродячей среды. Кроме того, мы говорим о местной бродячей вирусной машине для хоста, поэтому на самом деле нет любая проблема безопасности, которую я вижу.
надеюсь, что это помогает.
добавление этого в Vagrantfile сработало для меня. Эти строки являются эквивалентом ввода "sudo su -" каждый раз, когда вы входите в систему. Обратите внимание, что это требует повторной проверки виртуальной машины.
config.vm.provision "shell", inline: <<-SHELL echo "sudo su -" >> .bashrc SHELL
vagrant destroy vagrant upпожалуйста, добавьте это в файл vagrant:
config.ssh.username = 'vagrant' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'
Comments