Salvó mi vida. ¿Sabes si esto tiene alguna repercusión en la forma en que actúa el vagabundo?
Matt
1
La lección aquí es que si crea una caja base, siga las convenciones sugeridas por Hashicorp y configure su contraseña raíz en 'vagabundo'. ver docs.vagrantup.com/v2/boxes/base.html
Mike D
Sin embargo, ¿hay algún problema de seguridad potencial con un servidor que tiene una contraseña de root muy fácil de adivinar en su computadora personal? Imagino que la configuración de la red ayuda con esto, pero me pregunto.
Nathan Basanese
1
gracias por la pista. Resulta que las cajas vagabundas de Ubuntu establecen una contraseña aleatoria para el usuario raíz (consulte groups.google.com/d/msg/vagrant-up/xMWKkKW24xs/f5OaV5QWAp4J ). Por lo que siempre se debe establecer una contraseña de root primero.
En lo vagrant sshsucesivo, iniciará sesión como rooty debe esperar lo siguiente:
==> 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!
Actualización 23-Jun-2015:
esto también funciona para la versión 1.7.2. La seguridad de las claves ha mejorado desde la versión 1.7.0; esta técnica anula el método anterior que usa una clave privada conocida. Esta solución no está destinada a ser utilizada para una caja que sea accesible públicamente sin las medidas de seguridad adecuadas antes de la publicación.
¿Podría haber alguna razón para que se le solicite la contraseña cuando se ejecuta vagrant ssh? (después de realizar los cambios descritos) Vagrant versión 1.7.2
roign
@RobertIgnat posiblemente necesite configurar su contraseña de root para que coincida con lo que tiene en su config.ssh.passwordvalor. debería poder comentar las config.ssh.*líneas recién agregadas para acceder a su caja y luego cambiar la contraseña de root a través de sudo passwd root.
Mike D
11
Para una máquina que ya ha sido aprovisionada, haga lo anterior y hágalomkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
Felipe Alvarez
2
no funciona para una nueva instalación de Vagrant, probablemente porque cuando uno usa, por ejemplo, ubuntu / xenial, TIENE que usar los inicios de sesión de usuario horneados allí. (ver también stackoverflow.com/a/40478402/605463 )
axd
1
Para cualquier otra persona que utilice centos/7: Este cuadro establece una contraseña de root aleatoria; uno puede vagrant sshy luego sudo sua la raíz, pero (por lo que puedo decir) la configuración de configuración no funciona en un nuevo vagrant upuso de esta máquina virtual.
mhulse
35
Esto funciona si estás en ubuntu / trusty64 box:
vagrant ssh
Una vez que esté en el cuadro de ubuntu:
sudo su
Ahora eres usuario root. Puede actualizar la contraseña de root como se muestra a continuación:
sudo -i
passwd
Ahora edite la siguiente línea en el archivo /etc/ssh/sshd_config
PermitRootLogin yes
Además, es conveniente crear su propio nombre de usuario alternativo:
Pero vagrant todavía le pide la contraseña de root, lo más probable es que el cuadro base que utilizó no esté configurado para permitir el inicio de sesión de root.
Por ejemplo, el cuadro oficial ubuntu14.04 no se establece PermitRootLogin yesen /etc/ssh/sshd_config.
Entonces, si desea que un cuadro pueda iniciar sesión como root predeterminado (solo Vagrantfile, no más trabajo), debe:
Configurar una máquina virtual por nombre de usuario vagrant(cualquier nombre excepto root)
Inicie sesión y edite el archivo de configuración sshd.
Bienvenido a SO. Agregue suficientes detalles y contexto a las respuestas. Especialmente cuando se responde a preguntas antiguas con buenas respuestas
Jayan
esto fue más útil para mí que la solución principal. ssh no le permite iniciar sesión como root de forma predeterminada.
bmbigbang
2
Nota: Utilice este método solo para el desarrollo local, no es seguro . Puede configurar la contraseña y la configuración ssh mientras aprovisiona la caja. Por ejemplo, con el debian/stretch64cuadro este es mi script de provisión:
Esto establecerá la contraseña de root vagranty permitirá el inicio de sesión de root con contraseña. Si está utilizando private_networkdecir con la dirección IP 192.168.10.37, puede ssh conssh [email protected]
Es posible que deba cambiar eso echoy los sedcomandos según el sshd_configarchivo predeterminado .
Agregar esto al Vagrantfiletrabajo para mí. Estas líneas son el equivalente a que ingrese sudo su -cada vez que inicie sesión. Tenga en cuenta que esto requiere reaprovisionar la máquina virtual.
config.vm.provision "shell", inline:<<-SHELL
echo "sudo su -">>.bashrc
SHELL
¡Gracias por tu sencilla solución! echo "sudo -s" >> .bashrc sería mejor.
Honiix
1
Sé que esta es una pregunta antigua, pero mirando la pregunta original, parece que el usuario solo quería ejecutar un comando como root, eso es lo que necesito hacer cuando estaba buscando una respuesta y me encontré con la pregunta.
Entonces este vale la pena conocerlo en mi opinión:
vagrantes la contraseña que se repite en el comando sudo, porque como todos sabemos, la cuenta vagabunda tiene privilegios sudo y cuando sudo, debe especificar la contraseña de la cuenta de usuario, no root ... y por supuesto, de forma predeterminada, la La contraseña del usuario vagabundo es vagrant!
De forma predeterminada, necesita privilegios de root para apagar, así que supongo que hacer un apagado es una buena prueba.
Obviamente, no necesita especificar un nombre de servidor si solo hay uno para ese entorno vagabundo. Además, estamos hablando de una máquina virtual vagabunda local para el host, por lo que realmente no hay ningún problema de seguridad que pueda ver.
Tuve algunos problemas con el aprovisionamiento al intentar iniciar sesión como root, incluso con PermitRootLogin yes. Lo hice de modo que solo el vagrant sshcomando se vea afectado:
# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
config.ssh.username = 'root'
end
Respuestas:
Esto es útil:
para cualquiera que haya sido atrapado por la necesidad de establecer una contraseña de root en vagrant primero
fuente
Solución:
agregue lo siguiente a su
Vagrantfile
:En lo
vagrant ssh
sucesivo, iniciará sesión comoroot
y debe esperar lo siguiente:Actualización 23-Jun-2015: esto también funciona para la versión 1.7.2. La seguridad de las claves ha mejorado desde la versión 1.7.0; esta técnica anula el método anterior que usa una clave privada conocida. Esta solución no está destinada a ser utilizada para una caja que sea accesible públicamente sin las medidas de seguridad adecuadas antes de la publicación.
Referencia:
fuente
vagrant ssh
? (después de realizar los cambios descritos) Vagrant versión 1.7.2config.ssh.password
valor. debería poder comentar lasconfig.ssh.*
líneas recién agregadas para acceder a su caja y luego cambiar la contraseña de root a través desudo passwd root
.mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Este cuadro establece una contraseña de root aleatoria; uno puedevagrant ssh
y luegosudo su
a la raíz, pero (por lo que puedo decir) la configuración de configuración no funciona en un nuevovagrant up
uso de esta máquina virtual.Esto funciona si estás en ubuntu / trusty64 box:
Una vez que esté en el cuadro de ubuntu:
Ahora eres usuario root. Puede actualizar la contraseña de root como se muestra a continuación:
Ahora edite la siguiente línea en el archivo
/etc/ssh/sshd_config
Además, es conveniente crear su propio nombre de usuario alternativo:
Espere hasta que le pida la contraseña.
fuente
Si es
Vagrantfile
como a continuación:Pero vagrant todavía le pide la contraseña de root, lo más probable es que el cuadro base que utilizó no esté configurado para permitir el inicio de sesión de root.
Por ejemplo, el cuadro oficial ubuntu14.04 no se establece
PermitRootLogin yes
en/etc/ssh/sshd_config
.Entonces, si desea que un cuadro pueda iniciar sesión como root predeterminado (solo Vagrantfile, no más trabajo), debe:
Configurar una máquina virtual por nombre de usuario
vagrant
(cualquier nombre excepto root)Inicie sesión y edite el archivo de configuración sshd.
ubuntu: editar
/etc/ssh/sshd_config
, establecerPermitRootLogin yes
otros: ....
(Solo uso ubuntu, siéntase libre de agregar una solución alternativa de otras plataformas)
Construye una nueva caja base:
esto crea un archivo
package.box
Agrega esa caja base a vagabundo:
luego, necesita usar este cuadro base para construir vm que permita el inicio de sesión automático como root.
Destruye vm original por
vagrant destroy
Edite el original
Vagrantfile
, cambie el nombre del cuadro aubuntu-root
y el nombre de usuario aroot
, luegovagrant up
cree uno nuevo.Me costó algo de tiempo averiguarlo, en mi opinión es demasiado complicado. Hope vagrant mejoraría esto.
fuente
¡No olvide que root puede iniciar sesión antes!
Coloque el código de configuración a continuación en el
/etc/ssh/sshd_config
archivo.fuente
Nota: Utilice este método solo para el desarrollo local, no es seguro . Puede configurar la contraseña y la configuración ssh mientras aprovisiona la caja. Por ejemplo, con el
debian/stretch64
cuadro este es mi script de provisión:Esto establecerá la contraseña de root
vagrant
y permitirá el inicio de sesión de root con contraseña. Si está utilizandoprivate_network
decir con la dirección IP192.168.10.37
, puede ssh conssh [email protected]
Es posible que deba cambiar eso
echo
y lossed
comandos según elsshd_config
archivo predeterminado .fuente
Agregar esto al
Vagrantfile
trabajo para mí. Estas líneas son el equivalente a que ingresesudo su -
cada vez que inicie sesión. Tenga en cuenta que esto requiere reaprovisionar la máquina virtual.fuente
Sé que esta es una pregunta antigua, pero mirando la pregunta original, parece que el usuario solo quería ejecutar un comando como root, eso es lo que necesito hacer cuando estaba buscando una respuesta y me encontré con la pregunta.
Entonces este vale la pena conocerlo en mi opinión:
vagrant
es la contraseña que se repite en el comando sudo, porque como todos sabemos, la cuenta vagabunda tiene privilegios sudo y cuando sudo, debe especificar la contraseña de la cuenta de usuario, no root ... y por supuesto, de forma predeterminada, la La contraseña del usuario vagabundo esvagrant
!De forma predeterminada, necesita privilegios de root para apagar, así que supongo que hacer un apagado es una buena prueba.
Obviamente, no necesita especificar un nombre de servidor si solo hay uno para ese entorno vagabundo. Además, estamos hablando de una máquina virtual vagabunda local para el host, por lo que realmente no hay ningún problema de seguridad que pueda ver.
Espero que esto ayude.
fuente
Tuve algunos problemas con el aprovisionamiento al intentar iniciar sesión como root, incluso con
PermitRootLogin yes
. Lo hice de modo que solo elvagrant ssh
comando se vea afectado:fuente
Agregue esto al archivo vagabundo:
fuente