вход в систему vagrant как root по умолчанию

проблема: часто первая команда, которую я набираю в свои поля, -su -.

вопрос: как сделать vagrant ssh использовать пользователя root по умолчанию?

версия: бродяга 1.6.5

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 box:

sudo su

теперь вы пользователь root. Вы можете обновить пароль root, как показано ниже :

sudo -i
passwd

теперь отредактируйте нижеприведенную строку в файле /etc/ssh/sshd_config

PermitRootLogin yes

кроме того, удобно создать собственное альтернативное имя пользователя:

adduser johndoe

подождите, пока он не запрашивает пароль.


если Vagrantfile как показано ниже:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

но бродяга все еще спрашивает у вас пароль root, скорее всего, базовый ящик, который вы использовали, не настроен для разрешения входа root.


например, официальный ubuntu14.04 поле не устанавливать PermitRootLogin yes на /etc/ssh/sshd_config.

поэтому, если вы хотите, чтобы поле могло войти в систему как root по умолчанию(только Vagrantfile, больше не работает), вам нужно :

  1. настройка виртуальной машины по имени пользователя vagrant(любое имя, но root)

  2. войти и редактировать файл конфигурации sshd.

    ubuntu: edit /etc/ssh/sshd_config, set PermitRootLogin yes

    orthers: ....

    (я использую только ubuntu, не стесняйтесь добавлять обходные пути других платформ)

  3. создайте новую базовую коробку:

    vagrant package --base your-vm-name
    

    это создать файл package.box

  4. добавьте эту базовую коробку в vagrant:

    vagrant box add ubuntu-root file:///somepath/package.box
    

    тогда, вам нужно использовать этот корпус построить vm, которые позволяют авто войти в систему как root.

  5. уничтожить оригинальный vm по vagrant destroy

  6. редактировать оригинал Vagrantfile, измените имя поля на ubuntu-root и имя root, потом vagrant up создать новый.

это стоило мне некоторого времени, чтобы понять, это слишком сложно, на мой взгляд. Надеюсь, vagrant улучшит это.


Не забывайте, что root разрешен root для входа в систему раньше!!!

поместите код конфигурации ниже в файл /etc/ssh/sshd_config.

PermitRootLogin yes

Я знаю, это старый вопрос...но, глядя на исходный вопрос, похоже, что пользователь просто хотел запустить команду как root..это то, что мне нужно сделать, когда я искал ответ и наткнулся на этот вопрос.

Так что это стоит знать, на мой взгляд:

vagrant ssh servername-c "echo vagrant / sudo-s shutdown 0"

" бродяга " - это пароль, который повторяется в команде sudo, потому что, как мы все знаем, бродяга учетная запись имеет привилегии sudo, и когда вы sudo, вам нужно указать пароль учетной записи пользователя, а не root..и, конечно, по умолчанию пароль пользователя vagrant - "бродяга"!

по умолчанию вам нужны привилегии root для выключения, поэтому я думаю, что завершение работы-хороший тест.

очевидно, вам не нужно указывать имя сервера, если для этой бродячей среды есть только один. Кроме того, мы говорим о местной бродячей вирусной машине для хоста, поэтому на самом деле нет любая проблема безопасности, которую я вижу.

надеюсь, что это помогает.


добавление этого в 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'