Problema: con frecuencia, el primer comando que escribo en mis casillas es su -
.
Pregunta: ¿cómo puedo vagrant ssh
utilizar el usuario root de forma predeterminada?
Versión: vagrant 1.6.5
Problema: con frecuencia, el primer comando que escribo en mis casillas es su -
.
Pregunta: ¿cómo puedo vagrant ssh
utilizar el usuario root de forma predeterminada?
Versión: vagrant 1.6.5
Respuestas:
Esto es útil:
sudo passwd root
para cualquiera que haya sido atrapado por la necesidad de establecer una contraseña de root en vagrant primero
Solución:
agregue lo siguiente a su Vagrantfile
:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
En lo vagrant ssh
sucesivo, iniciará sesión como root
y 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.
Referencia:
vagrant ssh
? (después de realizar los cambios descritos) Vagrant versión 1.7.2
config.ssh.password
valor. 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
.
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Este cuadro establece una contraseña de root aleatoria; uno puede vagrant ssh
y luego sudo su
a la raíz, pero (por lo que puedo decir) la configuración de configuración no funciona en un nuevo vagrant up
uso de esta máquina virtual.
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:
adduser johndoe
Espere hasta que le pida la contraseña.
Si es Vagrantfile
como a continuación:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
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
, establecer PermitRootLogin yes
otros: ....
(Solo uso ubuntu, siéntase libre de agregar una solución alternativa de otras plataformas)
Construye una nueva caja base:
vagrant package --base your-vm-name
esto crea un archivo package.box
Agrega esa caja base a vagabundo:
vagrant box add ubuntu-root file:///somepath/package.box
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 a ubuntu-root
y el nombre de usuario a root
, luego vagrant up
cree uno nuevo.
Me costó algo de tiempo averiguarlo, en mi opinión es demasiado complicado. Hope vagrant mejoraría esto.
¡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.
PermitRootLogin yes
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:
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
Esto establecerá la contraseña de root vagrant
y permitirá el inicio de sesión de root con contraseña. Si está utilizando private_network
decir con la dirección IP 192.168.10.37
, puede ssh conssh root@192.168.10.37
Es posible que deba cambiar eso echo
y los sed
comandos según el sshd_config
archivo predeterminado .
Agregar esto al Vagrantfile
trabajo 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
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 ssh servername -c "echo vagrant | sudo -S shutdown 0"
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 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.
Espero que esto ayude.
vagrant destroy
vagrant up
Agregue esto al archivo vagabundo:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'