Hat mein Leben gerettet. Wissen Sie, ob dies Auswirkungen darauf hat, wie sich Vagabunden verhalten?
Matt
1
Die Lektion hier lautet: Wenn Sie eine Basisbox erstellen, befolgen Sie die von Hashicorp vorgeschlagenen Konventionen und setzen Sie Ihren Root-Pass auf "vagrant". siehe docs.vagrantup.com/v2/boxes/base.html
Mike D
Gibt es potenzielle Sicherheitsprobleme mit einem Server, auf dessen PC ein wirklich leicht zu erratendes Root-Passwort liegt? Ich stelle mir vor, dass die Netzwerkeinstellungen dabei helfen, aber ich frage mich.
Wenn Sie sich vagrant sshfortan anmelden, rootsollten Sie Folgendes erwarten und erwarten:
==> 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!
Update 23.06.2015:
Dies funktioniert auch für Version 1.7.2. Die Tastensicherheit hat sich seit 1.7.0 verbessert. Diese Technik überschreibt die vorherige Methode, bei der ein bekannter privater Schlüssel verwendet wird. Diese Lösung ist nicht für eine Box vorgesehen, die öffentlich zugänglich ist, ohne dass vor der Veröffentlichung geeignete Sicherheitsmaßnahmen getroffen wurden.
Könnte es einen Grund geben, die Passwortabfrage beim Ausführen zu erhalten vagrant ssh? (nach den beschriebenen Änderungen) Vagrant Version 1.7.2
Roign
@RobertIgnat möglicherweise, dass Sie Ihr root passwd so einstellen müssen, dass es mit dem übereinstimmt, was Sie in Ihrem config.ssh.passwordWert haben. Sie sollten in der Lage sein, die neu hinzugefügten config.ssh.*Zeilen zu kommentieren, um auf Ihre Box zuzugreifen, und dann das Root-Passwort über zu ändern sudo passwd root.
Mike D
11
Führen Sie für eine Maschine, die bereits bereitgestellt wurde, die oben genannten mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
Felipe Alvarez,
2
funktioniert nicht für eine neue Vagrant-Installation, wahrscheinlich weil man, wenn man zB Ubuntu / Xenial verwendet, die dort gebackenen Benutzeranmeldungen verwenden muss. (Siehe auch stackoverflow.com/a/40478402/605463 )
Axd
1
Für alle anderen centos/7Benutzer: In diesem Feld wird ein zufälliges Root-Passwort festgelegt. man kann vagrant sshund dann sudo surooten, aber (soweit ich das beurteilen kann) funktionieren die Konfigurationseinstellungen auf einer neuen vagrant upmit dieser VM nicht.
Mhulse
35
Dies funktioniert, wenn Sie sich auf einer Ubuntu / Trusty64-Box befinden:
vagrant ssh
Sobald Sie in der Ubuntu-Box sind:
sudo su
Jetzt sind Sie Root-Benutzer. Sie können das Root-Passwort wie folgt aktualisieren:
sudo -i
passwd
Bearbeiten Sie nun die folgende Zeile in der Datei /etc/ssh/sshd_config
PermitRootLogin yes
Es ist auch praktisch, einen eigenen alternativen Benutzernamen zu erstellen:
adduser johndoe
Warten Sie, bis Sie nach dem Passwort gefragt werden.
Vagrant fragt Sie jedoch weiterhin nach dem Root-Passwort. Wahrscheinlich ist die von Ihnen verwendete Basisbox nicht so konfiguriert, dass die Root-Anmeldung zulässig ist.
Zum Beispiel, die offizielle ubuntu14.04 Box nicht gesetzt PermitRootLogin yesin /etc/ssh/sshd_config.
Wenn Sie also möchten, dass sich eine Box als Root-Standard anmeldet (nur Vagrantfile, keine Arbeit mehr), müssen Sie:
Richten Sie eine VM nach Benutzername ein vagrant(welcher Name auch immer, aber root)
Melden Sie sich an und bearbeiten Sie die sshd-Konfigurationsdatei.
Dann müssen Sie diese Basisbox verwenden, um VM zu erstellen, die die automatische Anmeldung als Root ermöglichen.
Zerstöre das Original-VM von vagrant destroy
Bearbeiten Sie das Original Vagrantfile, ändern Sie den Boxnamen in ubuntu-rootund den Benutzernamen in rootund vagrant uperstellen Sie dann einen neuen.
Es hat mich einige Zeit gekostet, es herauszufinden, es ist meiner Meinung nach zu kompliziert. Hoffe, Vagabund würde dies verbessern.
Willkommen bei SO. Bitte fügen Sie den Antworten genügend Details und Kontext hinzu. Besonders wenn alte Fragen mit einigen guten Antworten beantwortet werden
Jayan
Das war für mich nützlicher als die Hauptlösung. Mit ssh können Sie sich standardmäßig nicht als root anmelden.
Bmbigbang
1
Dies zu dem hinzuzufügen, das Vagrantfilefür mich gearbeitet hat. Diese Zeilen entsprechen Ihrer Eingabe bei sudo su -jeder Anmeldung. Bitte beachten Sie, dass hierfür eine erneute Bereitstellung der VM erforderlich ist.
config.vm.provision "shell", inline:<<-SHELL
echo "sudo su -">>.bashrc
SHELL
Vielen Dank für Ihre sehr einfache Lösung! echo "sudo -s" >> .bashrc wäre besser.
Honiix
1
Ich weiß, dass dies eine alte Frage ist, aber wenn ich mir die ursprüngliche Frage anschaue, sieht es so aus, als wollte der Benutzer nur einen Befehl als root ausführen. Das muss ich tun, als ich nach einer Antwort suchte und über die Frage stolperte.
vagrantWird das Kennwort in den Befehl sudo übernommen, da das Vagrant-Konto bekanntlich über sudo-Berechtigungen verfügt und Sie bei sudo das Kennwort des Benutzerkontos und nicht root angeben müssen Das Passwort des vagabundierenden Benutzers lautet vagrant!
Standardmäßig benötigen Sie Root-Berechtigungen zum Herunterfahren, daher ist das Herunterfahren ein guter Test.
Offensichtlich müssen Sie keinen Servernamen angeben, wenn es nur einen für diese vagabundierende Umgebung gibt. Außerdem sprechen wir mit dem Host über eine lokale vagabundierende virtuelle Maschine, sodass ich keine Sicherheitsprobleme sehen kann.
Hinweis: Verwenden Sie diese Methode nur für die lokale Entwicklung, sie ist nicht sicher . Sie können das Kennwort und die SSH-Konfiguration einrichten, während Sie die Box bereitstellen. Zum Beispiel mit debian/stretch64Box ist dies mein Bereitstellungsskript:
Dadurch wird das Root-Passwort auf gesetzt vagrantund die Root-Anmeldung mit dem Passwort ermöglicht. Wenn Sie private_networksay mit IP-Adresse verwenden 192.168.10.37, können Sie mit sshssh [email protected]
Möglicherweise müssen Sie dies echound die sedBefehle abhängig von der Standarddatei ändern sshd_config.
Ich hatte einige Probleme mit der Bereitstellung, als ich versuchte, mich als root anzumelden, auch mit PermitRootLogin yes. Ich habe es so gemacht, dass nur der vagrant sshBefehl betroffen ist:
# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
config.ssh.username = 'root'
end
Antworten:
Das ist nützlich:
für alle, die von der Notwendigkeit überrascht wurden, zuerst ein Root-Passwort in vagrant festzulegen
quelle
Lösung:
Fügen Sie Folgendes hinzu
Vagrantfile
:Wenn Sie sich
vagrant ssh
fortan anmelden,root
sollten Sie Folgendes erwarten und erwarten:Update 23.06.2015: Dies funktioniert auch für Version 1.7.2. Die Tastensicherheit hat sich seit 1.7.0 verbessert. Diese Technik überschreibt die vorherige Methode, bei der ein bekannter privater Schlüssel verwendet wird. Diese Lösung ist nicht für eine Box vorgesehen, die öffentlich zugänglich ist, ohne dass vor der Veröffentlichung geeignete Sicherheitsmaßnahmen getroffen wurden.
Referenz:
quelle
vagrant ssh
? (nach den beschriebenen Änderungen) Vagrant Version 1.7.2config.ssh.password
Wert haben. Sie sollten in der Lage sein, die neu hinzugefügtenconfig.ssh.*
Zeilen zu kommentieren, um auf Ihre Box zuzugreifen, und dann das Root-Passwort über zu ändernsudo passwd root
.mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
Benutzer: In diesem Feld wird ein zufälliges Root-Passwort festgelegt. man kannvagrant ssh
und dannsudo su
rooten, aber (soweit ich das beurteilen kann) funktionieren die Konfigurationseinstellungen auf einer neuenvagrant up
mit dieser VM nicht.Dies funktioniert, wenn Sie sich auf einer Ubuntu / Trusty64-Box befinden:
Sobald Sie in der Ubuntu-Box sind:
Jetzt sind Sie Root-Benutzer. Sie können das Root-Passwort wie folgt aktualisieren:
Bearbeiten Sie nun die folgende Zeile in der Datei
/etc/ssh/sshd_config
Es ist auch praktisch, einen eigenen alternativen Benutzernamen zu erstellen:
Warten Sie, bis Sie nach dem Passwort gefragt werden.
quelle
Wenn
Vagrantfile
wie unten:Vagrant fragt Sie jedoch weiterhin nach dem Root-Passwort. Wahrscheinlich ist die von Ihnen verwendete Basisbox nicht so konfiguriert, dass die Root-Anmeldung zulässig ist.
Zum Beispiel, die offizielle ubuntu14.04 Box nicht gesetzt
PermitRootLogin yes
in/etc/ssh/sshd_config
.Wenn Sie also möchten, dass sich eine Box als Root-Standard anmeldet (nur Vagrantfile, keine Arbeit mehr), müssen Sie:
Richten Sie eine VM nach Benutzername ein
vagrant
(welcher Name auch immer, aber root)Melden Sie sich an und bearbeiten Sie die sshd-Konfigurationsdatei.
ubuntu: bearbeiten
/etc/ssh/sshd_config
, einstellenPermitRootLogin yes
Andere: ....
(Ich benutze nur Ubuntu, zögern Sie nicht, eine Problemumgehung für andere Plattformen hinzuzufügen.)
Erstellen Sie eine neue Basisbox:
Dadurch wird eine Datei erstellt
package.box
Fügen Sie diese Basisbox dem Landstreicher hinzu:
Dann müssen Sie diese Basisbox verwenden, um VM zu erstellen, die die automatische Anmeldung als Root ermöglichen.
Zerstöre das Original-VM von
vagrant destroy
Bearbeiten Sie das Original
Vagrantfile
, ändern Sie den Boxnamen inubuntu-root
und den Benutzernamen inroot
undvagrant up
erstellen Sie dann einen neuen.Es hat mich einige Zeit gekostet, es herauszufinden, es ist meiner Meinung nach zu kompliziert. Hoffe, Vagabund würde dies verbessern.
quelle
Vergessen Sie nicht, dass root sich vorher anmelden darf !!!
Fügen Sie den Konfigurationscode unten in die
/etc/ssh/sshd_config
Datei ein.quelle
Dies zu dem hinzuzufügen, das
Vagrantfile
für mich gearbeitet hat. Diese Zeilen entsprechen Ihrer Eingabe beisudo su -
jeder Anmeldung. Bitte beachten Sie, dass hierfür eine erneute Bereitstellung der VM erforderlich ist.quelle
Ich weiß, dass dies eine alte Frage ist, aber wenn ich mir die ursprüngliche Frage anschaue, sieht es so aus, als wollte der Benutzer nur einen Befehl als root ausführen. Das muss ich tun, als ich nach einer Antwort suchte und über die Frage stolperte.
Dieser ist meiner Meinung nach wissenswert:
vagrant
Wird das Kennwort in den Befehl sudo übernommen, da das Vagrant-Konto bekanntlich über sudo-Berechtigungen verfügt und Sie bei sudo das Kennwort des Benutzerkontos und nicht root angeben müssen Das Passwort des vagabundierenden Benutzers lautetvagrant
!Standardmäßig benötigen Sie Root-Berechtigungen zum Herunterfahren, daher ist das Herunterfahren ein guter Test.
Offensichtlich müssen Sie keinen Servernamen angeben, wenn es nur einen für diese vagabundierende Umgebung gibt. Außerdem sprechen wir mit dem Host über eine lokale vagabundierende virtuelle Maschine, sodass ich keine Sicherheitsprobleme sehen kann.
Hoffe das hilft.
quelle
Hinweis: Verwenden Sie diese Methode nur für die lokale Entwicklung, sie ist nicht sicher . Sie können das Kennwort und die SSH-Konfiguration einrichten, während Sie die Box bereitstellen. Zum Beispiel mit
debian/stretch64
Box ist dies mein Bereitstellungsskript:Dadurch wird das Root-Passwort auf gesetzt
vagrant
und die Root-Anmeldung mit dem Passwort ermöglicht. Wenn Sieprivate_network
say mit IP-Adresse verwenden192.168.10.37
, können Sie mit sshssh [email protected]
Möglicherweise müssen Sie dies
echo
und diesed
Befehle abhängig von der Standarddatei ändernsshd_config
.quelle
Ich hatte einige Probleme mit der Bereitstellung, als ich versuchte, mich als root anzumelden, auch mit
PermitRootLogin yes
. Ich habe es so gemacht, dass nur dervagrant ssh
Befehl betroffen ist:quelle
Bitte fügen Sie dies zur Vagabunddatei hinzu:
quelle