Проблема: часто першою командою, яку я ввожу в свої скриньки, є 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/stretch64box це мій сценарій надання:
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'