Спас мою жизнь. Вы знаете, влияет ли это на поведение бродяг?
Мэтт
1
Урок здесь в том, что если вы создаете базовый блок, следуйте соглашениям, предложенным Hashicorp, и установите для корневого пароля значение «vagrant». см. docs.vagrantup.com/v2/boxes/base.html
Майк Д.
Однако есть ли какие-либо потенциальные проблемы с безопасностью на сервере, на котором на вашем персональном компьютере находится действительно легко угадываемый пароль root? Я полагаю, что сетевые настройки помогают в этом, но мне интересно.
Когда вы в 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 июня 2015 г.
Это работает и для версии 1.7.2. Безопасность ключей улучшена с версии 1.7.0; этот метод отменяет предыдущий метод, который использует известный закрытый ключ. Это решение не предназначено для использования с общедоступным ящиком без надлежащих мер безопасности, предпринятых перед публикацией.
Может быть какая-то причина для запроса пароля при запуске vagrant ssh? (после внесения описанных изменений) Vagrant version 1.7.2
roign
@RobertIgnat, возможно, вам нужно установить корневой пароль в соответствии с тем, что у вас есть в вашем config.ssh.passwordзначении. вы должны иметь возможность закомментировать новые добавленные config.ssh.*строки для доступа к вашему ящику, а затем изменить пароль root через sudo passwd root.
Mike D
11
Для машины, которая уже была подготовлена, проделайте то же самое и сделайтеmkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
Фелипе Альварес
2
не работает для новой установки Vagrant, вероятно, потому что, когда кто-то использует, например, ubuntu / xenial, нужно использовать запеченные там логины пользователей. (см. также stackoverflow.com/a/40478402/605463 )
axd 03
1
Для всех, кто использует centos/7: Это поле устанавливает случайный пароль root; можно, vagrant sshа затем sudo suполучить root-права, но (насколько я могу судить) настройки конфигурации не работают на свежей машине vagrant upс использованием этой виртуальной машины.
mhulse
37
Это работает, если вы используете ящик ubuntu / trusty64:
vagrant ssh
Как только вы окажетесь в поле ubuntu:
sudo su
Теперь вы пользователь root. Вы можете обновить пароль root, как показано ниже:
sudo -i
passwd
Теперь отредактируйте следующую строку в файле /etc/ssh/sshd_config
PermitRootLoginyes
Также удобно создать собственное альтернативное имя пользователя:
Добро пожаловать в SO. Пожалуйста, добавьте в ответы достаточно деталей и контекста. Особенно, когда вы отвечаете на старый вопрос хорошими ответами
Джаян
это было для меня более полезным, чем основное решение. По умолчанию ssh не позволяет входить в систему как root.
bmbigbang
2
Добавление этого в Vagrantfileсработало для меня. Эти строки эквивалентны тому, что вы вводите sudo su -каждый раз при входе в систему. Обратите внимание, что это требует повторной инициализации виртуальной машины.
config.vm.provision "shell", inline:<<-SHELL
echo "sudo su -" >> .bashrc
SHELL
Спасибо за очень простое решение! echo "sudo -s" >> .bashrc было бы лучше.
Honiix
@Honiix Ты имеешь в виду -i? 😅
Томас Готвиг
@ThomasGotwig, вы правы, `-i` встречается чаще, чем `-s`, оба работают в зависимости от того, что вы хотите сделать. Но я хотел сказать, что лучше избегать объединения sudo и su.
Honiix
2
Примечание. Используйте этот метод только для локальной разработки, это небезопасно . Вы можете установить пароль и конфигурацию ssh во время подготовки окна. Например, с debian/stretch64коробкой это мой сценарий подготовки:
Это установит пароль root vagrantи разрешит вход root с паролем. Если вы используете private_networksay с IP-адресом, 192.168.10.37вы можете использовать ssh сssh root@192.168.10.37
Возможно, вам придется изменить это echoи sedкоманды в зависимости от sshd_configфайла по умолчанию .
Я знаю, что это старый вопрос, но, глядя на исходный вопрос, похоже, что пользователь просто хотел запустить команду как root, это то, что мне нужно сделать, когда я искал ответ и наткнулся на вопрос.
vagrant- это пароль, отображаемый в команде sudo, потому что, как мы все знаем, учетная запись vagrant имеет привилегии sudo, и когда вы используете sudo, вам нужно указать пароль учетной записи пользователя, а не root ... и, конечно же, по умолчанию пароль бродячего пользователя vagrant!
По умолчанию для завершения работы вам нужны права root, поэтому я думаю, что завершение работы - хороший тест.
Очевидно, что вам не нужно указывать имя сервера, если оно только одно для этой бродячей среды. Кроме того, мы говорим о локальной бродячей виртуальной машине для хоста, поэтому я не вижу никаких проблем с безопасностью.
У меня были проблемы с подготовкой при попытке войти в систему как root, даже с PermitRootLogin yes. Я сделал так, что vagrant sshвлияет только на команду:
# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
config.ssh.username = 'root'
end
Ответы:
Это полезно:
для всех, кого поймали на необходимости сначала установить пароль root в бродяге
источник
Решение:
добавьте в свой
Vagrantfile
:config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'
Когда вы в
vagrant ssh
дальнейшем, вы будете войти какroot
и следует ожидать следующее:Обновление от 23 июня 2015 г. Это работает и для версии 1.7.2. Безопасность ключей улучшена с версии 1.7.0; этот метод отменяет предыдущий метод, который использует известный закрытый ключ. Это решение не предназначено для использования с общедоступным ящиком без надлежащих мер безопасности, предпринятых перед публикацией.
Справка:
источник
vagrant ssh
? (после внесения описанных изменений) Vagrant version 1.7.2config.ssh.password
значении. вы должны иметь возможность закомментировать новые добавленныеconfig.ssh.*
строки для доступа к вашему ящику, а затем изменить пароль root черезsudo passwd root
.mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Это поле устанавливает случайный пароль root; можно,vagrant ssh
а затемsudo su
получить root-права, но (насколько я могу судить) настройки конфигурации не работают на свежей машинеvagrant up
с использованием этой виртуальной машины.Это работает, если вы используете ящик ubuntu / trusty64:
Как только вы окажетесь в поле ubuntu:
Теперь вы пользователь root. Вы можете обновить пароль root, как показано ниже:
Теперь отредактируйте следующую строку в файле
/etc/ssh/sshd_config
PermitRootLogin yes
Также удобно создать собственное альтернативное имя пользователя:
Подождите, пока он не запросит пароль.
источник
Если,
Vagrantfile
как показано ниже:config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'
Но бродяга по-прежнему спрашивает у вас пароль root, скорее всего, используемый вами базовый блок не настроен на разрешение входа в систему root.
Например, Offical коробка ubuntu14.04 не установлен
PermitRootLogin yes
в/etc/ssh/sshd_config
.Итак, если вы хотите, чтобы ящик мог входить в систему как root по умолчанию (только Vagrantfile, больше никакой работы), вам необходимо:
Настройте виртуальную машину по имени пользователя
vagrant
(любое имя, кроме root)Войдите и отредактируйте файл конфигурации sshd.
ubuntu: редактировать
/etc/ssh/sshd_config
, устанавливатьPermitRootLogin yes
другие: ....
(Я использую только ubuntu, не стесняйтесь добавлять обходные пути для других платформ)
Создайте новую базовую коробку:
это создать файл
package.box
Добавьте эту базовую коробку в бродягу:
затем вам нужно использовать этот базовый блок для создания виртуальной машины, которая позволяет автоматически входить в систему как root.
Уничтожить оригинал vm - пользователем
vagrant destroy
Отредактируйте оригинал
Vagrantfile
, измените имя ящика наubuntu-root
и имя пользователя наroot
, а затемvagrant up
создайте новый.Мне потребовалось время, чтобы разобраться, на мой взгляд, это слишком сложно. Надеюсь, что бродяга это исправит.
источник
Не забывайте, что root может входить в систему раньше !!!
Поместите код конфигурации ниже в
/etc/ssh/sshd_config
файл.PermitRootLogin yes
источник
Добавление этого в
Vagrantfile
сработало для меня. Эти строки эквивалентны тому, что вы вводитеsudo su -
каждый раз при входе в систему. Обратите внимание, что это требует повторной инициализации виртуальной машины.config.vm.provision "shell", inline: <<-SHELL echo "sudo su -" >> .bashrc SHELL
источник
-i
? 😅Примечание. Используйте этот метод только для локальной разработки, это небезопасно . Вы можете установить пароль и конфигурацию ssh во время подготовки окна. Например, с
debian/stretch64
коробкой это мой сценарий подготовки:Это установит пароль root
vagrant
и разрешит вход root с паролем. Если вы используетеprivate_network
say с IP-адресом,192.168.10.37
вы можете использовать ssh сssh root@192.168.10.37
Возможно, вам придется изменить это
echo
иsed
команды в зависимости отsshd_config
файла по умолчанию .источник
Я знаю, что это старый вопрос, но, глядя на исходный вопрос, похоже, что пользователь просто хотел запустить команду как root, это то, что мне нужно сделать, когда я искал ответ и наткнулся на вопрос.
На мой взгляд, это стоит знать:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
- это пароль, отображаемый в команде sudo, потому что, как мы все знаем, учетная запись vagrant имеет привилегии sudo, и когда вы используете sudo, вам нужно указать пароль учетной записи пользователя, а не root ... и, конечно же, по умолчанию пароль бродячего пользователяvagrant
!По умолчанию для завершения работы вам нужны права root, поэтому я думаю, что завершение работы - хороший тест.
Очевидно, что вам не нужно указывать имя сервера, если оно только одно для этой бродячей среды. Кроме того, мы говорим о локальной бродячей виртуальной машине для хоста, поэтому я не вижу никаких проблем с безопасностью.
Надеюсь это поможет.
источник
У меня были проблемы с подготовкой при попытке войти в систему как root, даже с
PermitRootLogin yes
. Я сделал так, чтоvagrant ssh
влияет только на команду:источник
Пожалуйста, добавьте это в бродячий файл:
источник