Проблема: часто первая команда, которую я вводил в мои поля, - su -
.
Вопрос: как сделать vagrant ssh
по умолчанию пользователем root?
Версия: vagrant 1.6.5
Проблема: часто первая команда, которую я вводил в мои поля, - su -
.
Вопрос: как сделать vagrant ssh
по умолчанию пользователем root?
Версия: vagrant 1.6.5
Решение:
Добавьте к вашему 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 в бродячем первом
Это работает, если вы находитесь в поле ubuntu/trusty64:
vagrant ssh
Как только вы попадете в поле ubuntu:
sudo su
Теперь вы являетесь пользователем root. Вы можете обновить пароль root, как показано ниже:
sudo -i
passwd
Теперь отредактируйте приведенную ниже строку в файле /etc/ssh/sshd_config
PermitRootLogin yes
Кроме того, удобно создать собственное альтернативное имя пользователя:
adduser johndoe
Подождите, пока он не запросит пароль.
Не забывайте, что root разрешен root для входа в систему раньше!!!
Поместите код конфигурации ниже в файл /etc/ssh/sshd _config.
PermitRootLogin yes
Если 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, больше нет работы), вы должны:
Установите vm по имени пользователя vagrant
(любое имя, кроме root)
Войдите и отредактируйте файл конфигурации sshd.
ubuntu: отредактировать /etc/ssh/sshd_config
, установить PermitRootLogin yes
orthers:....
(Я использую только ubuntu, не стесняйтесь добавлять обходные пути других платформ)
Создайте новый базовый ящик:
vagrant package --base your-vm-name
создайте файл package.box
Добавьте этот базовый бокс для бродяг:
vagrant box add ubuntu-root file:///somepath/package.box
тогда вам нужно использовать этот базовый блок для создания vm, который позволяет автоматически вводить пользователя в качестве пользователя root.
Уничтожьте оригинальный vm vagrant destroy
Измените исходное Vagrantfile
, измените имя поля на ubuntu-root
и имя пользователя на root
, затем vagrant up
создайте новый.
Мне стоило времени выяснить, это слишком сложно, на мой взгляд. Хоуп бродяга улучшит это.
Я знаю, что это старый вопрос... но, глядя на исходный вопрос, похоже, что пользователь просто хотел запустить команду как root.., что мне нужно делать, когда я искал ответ и споткнулся по всему вопросу.
Значит, это стоит знать, по-моему:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
"бродяга" - это пароль, передаваемый в команду sudo, потому что, как мы все знаем, у бродячего аккаунта есть sudo privilages, и когда вы sudo, вам нужно указать пароль учетной записи пользователя, а не root.. и конечно, по умолчанию, пароль бродячих пользователей "бродячий"!
По умолчанию вам нужно root privilages для завершения работы, поэтому я думаю, что закрытие - хороший тест.
Очевидно, вам не нужно указывать имя сервера, если для этой бродяжной среды есть только одна. Кроме того, мы говорим о локальной машине vagutal virutal для хоста, поэтому нет никакой проблемы с безопасностью, которую я могу видеть.
Надеюсь, что это поможет.
vagrant destroy
vagrant up
Пожалуйста, добавьте это в бродячий файл:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'