Problem: często pierwsze polecenie, które wpisuję w moich skrzynkach, to su -
.
Pytanie: jak vagrant ssh
domyślnie korzystać z użytkownika root?
Wersja: vagrant 1.6.5
Problem: często pierwsze polecenie, które wpisuję w moich skrzynkach, to su -
.
Pytanie: jak vagrant ssh
domyślnie korzystać z użytkownika root?
Wersja: vagrant 1.6.5
Odpowiedzi:
Jest to przydatne:
sudo passwd root
dla każdego, kogo złapała potrzeba ustawienia hasła roota w vagrant
Rozwiązanie:
dodaj następujące elementy do swojego Vagrantfile
:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Kiedy vagrant ssh
odtąd będziesz się zalogować jak root
i należy spodziewać się, co następuje:
==> 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!
Aktualizacja z 23 czerwca 2015 r .: Działa to również w wersji 1.7.2. Bezpieczeństwo kluczy poprawiło się od wersji 1.7.0; ta technika zastępuje poprzednią metodę, która używa znanego klucza prywatnego. To rozwiązanie nie jest przeznaczone do użytku w przypadku skrzynki, która jest publicznie dostępna bez odpowiednich środków bezpieczeństwa podjętych przed publikacją.
Odniesienie:
vagrant ssh
? (po dokonaniu opisanych zmian) Vagrant wersja 1.7.2
config.ssh.password
wartości. powinieneś być w stanie skomentować nowo dodane config.ssh.*
linie, aby uzyskać dostęp do skrzynki, a następnie zmienić hasło roota za pośrednictwem sudo passwd root
.
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: To pole ustawia losowe hasło roota; można, vagrant ssh
a następnie sudo su
zrootować, ale (z tego, co wiem) ustawienia konfiguracyjne nie działają na nowej vagrant up
maszynie wirtualnej.
Działa to, jeśli korzystasz z skrzynki ubuntu / trusty64:
vagrant ssh
Gdy znajdziesz się w polu ubuntu:
sudo su
Teraz jesteś użytkownikiem root. Możesz zaktualizować hasło roota, jak pokazano poniżej:
sudo -i
passwd
Teraz edytuj poniższą linię w pliku /etc/ssh/sshd_config
PermitRootLogin yes
Ponadto wygodnie jest utworzyć własną alternatywną nazwę użytkownika:
adduser johndoe
Poczekaj, aż zapyta o hasło.
Jeśli Vagrantfile
jak poniżej:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Ale włóczęga nadal pyta cię o hasło roota, najprawdopodobniej używana skrzynka podstawowa nie jest skonfigurowana do zezwalania na logowanie roota.
Na przykład, pole ubuntu14.04 offical nie ustawisz PermitRootLogin yes
w /etc/ssh/sshd_config
.
Więc jeśli chcesz, aby box mógł logować się domyślnie jako root (tylko Vagrantfile, nie ma więcej pracy), musisz:
Skonfiguruj maszynę wirtualną według nazwy użytkownika vagrant
(niezależnie od nazwy oprócz root)
Zaloguj się i edytuj plik konfiguracyjny sshd.
ubuntu: edytuj /etc/ssh/sshd_config
, ustaw PermitRootLogin yes
inne: ....
(Używam tylko Ubuntu, nie krępuj się dodać obejście innych platform)
Zbuduj nowe pudełko podstawowe:
vagrant package --base your-vm-name
to tworzy plik package.box
Dodaj to pudełko bazowe dla włóczęgi:
vagrant box add ubuntu-root file:///somepath/package.box
następnie musisz użyć tego podstawowego pudełka do zbudowania maszyny wirtualnej, która pozwoli na automatyczne logowanie jako root.
Zniszcz oryginalny vm wg vagrant destroy
Edytuj oryginał Vagrantfile
, zmień nazwę skrzynki na ubuntu-root
i nazwę użytkownika na root
, a następnie vagrant up
utwórz nową.
Kosztowało mnie to trochę czasu, moim zdaniem jest to zbyt skomplikowane. Mam nadzieję, że włóczęga to poprawi.
Nie zapominaj, że root może się zalogować wcześniej !!!
Umieść poniższy kod konfiguracyjny w /etc/ssh/sshd_config
pliku.
PermitRootLogin yes
Dodanie tego do Vagrantfile
pracy dla mnie. Te wiersze są odpowiednikiem tego, sudo su -
co wpisujesz przy każdym logowaniu. Zwróć uwagę, że wymaga to ponownej obsługi maszyny wirtualnej.
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
-i
? 😅
Uwaga: używaj tej metody tylko do lokalnego programowania, nie jest bezpieczna . Możesz ustawić hasło i konfigurację ssh podczas udostępniania skrzynki. Na przykład z debian/stretch64
pudełkiem jest mój skrypt prowizyjny:
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
Spowoduje to ustawienie hasła roota vagrant
i zezwolenie na logowanie roota za pomocą hasła. Jeśli używasz private_network
say z adresem IP 192.168.10.37
, możesz ssh zssh root@192.168.10.37
Może zajść potrzeba zmiany tego echo
i sed
poleceń w zależności od domyślnego sshd_config
pliku.
Wiem, że to stare pytanie, ale patrząc na oryginalne pytanie, wygląda na to, że użytkownik chciał tylko uruchomić polecenie jako root, to właśnie muszę zrobić, gdy szukałem odpowiedzi i natknąłem się na to pytanie.
Więc moim zdaniem warto wiedzieć:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
to hasło powtarzane w poleceniu sudo, ponieważ jak wszyscy wiemy, konto vagrant ma uprawnienia sudo, a kiedy używasz sudo, musisz podać hasło konta użytkownika, a nie roota ... i oczywiście domyślnie hasło użytkownika włóczęgi to vagrant
!
Domyślnie potrzebujesz uprawnień roota, aby zamknąć system, więc myślę, że zamknięcie systemu jest dobrym testem.
Oczywiście nie musisz określać nazwy serwera, jeśli jest tylko jeden dla tego środowiska włóczęgów. Mówimy również o lokalnej maszynie wirtualnej włóczęgi do hosta, więc tak naprawdę nie widzę żadnego problemu z bezpieczeństwem.
Mam nadzieję że to pomoże.
vagrant destroy
vagrant up
Dodaj to do pliku włóczęgi:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'