Проблема: часто першою командою, яку я ввожу в свої скриньки, є su -
.
Питання: як зробити так, щоб vagrant ssh
користувач root використовував за замовчуванням?
Версія: vagrant 1.6.5
Проблема: часто першою командою, яку я ввожу в свої скриньки, є su -
.
Питання: як зробити так, щоб vagrant ssh
користувач root використовував за замовчуванням?
Версія: vagrant 1.6.5
Відповіді:
Це корисно:
sudo passwd root
для тих, кого впіймала необхідність спочатку встановити пароль користувача root у бродязі
Рішення:
Додайте до свого 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 червня 2015 р .: Це працює і для версії 1.7.2. Захист клавіатури покращився з 1.7.0; цей прийом замінює попередній метод, який використовує відомий приватний ключ. Це рішення не призначене для використання в коробці, яка є загальнодоступною без належних заходів безпеки, зроблених до публікації.
Довідково:
vagrant ssh
? (після внесення описаних змін) Vagrant версія 1.7.2
config.ssh.password
значенню. Ви повинні мати можливість коментувати нещодавно додані config.ssh.*
рядки, щоб отримати доступ до вашого вікна, а потім змінити пароль користувача через sudo passwd root
.
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Це поле встановлює випадковий пароль користувача; можна, vagrant ssh
а потім sudo su
викорінити, але (з того, що я можу сказати) налаштування конфігурації не працюють на новій, vagrant up
використовуючи цю віртуальну машину.
Це працює, якщо ви перебуваєте у вікні ubuntu / trusty64:
vagrant ssh
Опинившись у вікні ubuntu:
sudo su
Тепер ви користувач 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.
Наприклад, Offical коробка ubuntu14.04 не встановлено PermitRootLogin yes
в /etc/ssh/sshd_config
.
Отже, якщо ви хочете, щоб ящик міг увійти як кореневий за замовчуванням (лише Vagrantfile, більше не потрібно працювати), вам потрібно:
Налаштування vm за іменем користувача vagrant
(будь-яке ім'я, крім кореневого)
Увійдіть та відредагуйте файл конфігурації sshd.
ubuntu: редагування /etc/ssh/sshd_config
, встановлення PermitRootLogin yes
інші: ....
(Я використовую лише 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
створіть нове.
Мені це зайняло деякий час, щоб зрозуміти це, на мій погляд, це занадто складно. Сподіваюся, бродяга покращить це.
Не забувайте, корінь дозволено корінь входити раніше !!!
Помістіть код конфігурації нижче у /etc/ssh/sshd_config
файл.
PermitRootLogin yes
Додавши це до Vagrantfile
працюючого для мене. Ці рядки еквівалентні введенню sudo su -
кожного разу під час входу. Зверніть увагу, що для цього потрібно повторно надати віртуальну машину.
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
-i
? 😅
Примітка: Використовуйте цей метод лише для місцевого розвитку, він не є безпечним . Ви можете встановити пароль та конфігурацію ssh, одночасно надаючи поле. Наприклад, з debian/stretch64
box це мій сценарій надання:
config.vm.provision "shell", inline: <<-SHELL
echo -e "vagrant\nvagrant" | passwd root
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sed -in 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart
SHELL
Це встановить root-пароль vagrant
та дозволить root- пароль для входу. Якщо ви використовуєте private_network
сказати з 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, оскільки, як ми всі знаємо, обліковий запис бродяги має привілеї sudo, і коли ви sudo, вам потрібно вказати пароль облікового запису користувача, а не root .. і, звичайно, за замовчуванням, пароль бродячого користувача vagrant
!
За замовчуванням вам потрібні привілеї root для завершення роботи, тому, я думаю, робити вимкнення - це хороший тест.
Очевидно, що вам не потрібно вказувати ім'я сервера, якщо для цього бродячого середовища існує лише одне. Крім того, ми говоримо про локальну бродячу віртуальну машину для хоста, тому насправді немає проблем із безпекою, які я бачу.
Сподіваюся, це допомагає.
vagrant destroy
vagrant up
Будь ласка, додайте це у бродячий файл:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'