run password ssh vagrant

ssh - password - vagrant up



Vagrant reenvĂ­o ssh desde el servidor remoto (4)

Utiliza vagrant share --ssh

Vagrant ahora tiene un servicio para registrar una máquina virtual Vagrant para el acceso SSH remoto automáticamente.

Consulte aquí: https://www.vagrantup.com/docs/share/ssh.html

Usted llama vagrant share --ssh .
Esto genera una clave SSH (cifrada y protegida con contraseña), la carga en un servidor Hashicorp y devuelve un nombre de cuadro global tonto (por ejemplo, "rambunctious-deer-3496").
Entonces todos los que

  • tiene una cuenta de Hashicorp Atlas
  • sabe el nombre de la caja,
  • conoce la contraseña para la clave, y
  • tiene instalado Vagrant (!)

puede realizar el SSH remoto en la caja a través de vagrant connect --ssh BOXNAME .
Vagrant se encarga de todas las cosas administrativas detrás de las escenas (aquí hay algunos detalles ).

Funciona como se anuncia.
Supongo que esto funcionará incluso si el host Vagrant (no solo la máquina virtual) está detrás de un NAT.

Limitaciones:

  • vagrant share sesiones de vagrant share expiran ( actualmente después de 8 horas )
  • esperar algo de latencia, porque todo el tráfico es (presumiblemente) enrutado a través del servidor Altas
  • He visto cerrar mis conexiones remotas (sin ninguna razón obvia) después de no haberlas usado durante unos 15 minutos.

Configuré vagrant para ejecutar una máquina virtual en un sistema operativo. Lo que me gustaría hacer es poder ssh desde otras máquinas directamente en vm vagrant (es decir, no debería ssh en el host y luego vsh sagrante, etc. en vm vagrant).

Actualmente, ssh no puedo usar vagrant ssh desde el sistema ssh [email protected] -p 2222 host utilizando ssh [email protected] -p 2222 . Sin embargo, si ejecuto el mismo comando (reemplazando 127.0.0.1 con la dirección IP del host), obtengo "ssh connect to host XXXXX puerto 2222: conexión rechazada".

Intenté agregar mi propia regla de reenvío de puertos a vagrant:

config.vm.network :forwarded_port, guest: 22, host: 2222

Pero eso no permite la conexión ssh desde la máquina host o cualquier otra máquina en la red. Además, pasé un tiempo con config.ssh en los documentos errantes. Creo que la mayoría de esos parámetros especifican en qué puerto está ejecutando ssh el vagrant vm.

Realmente no creo que esto deba ser tan difícil. ¿Alguien sabe lo que podría estar haciendo mal, o lo que debería hacer de manera diferente a ssh en un vagrant vm desde un servidor remoto?


Desde v1.2.3 el reenvío de puertos Vagrant por defecto se enlaza con 127.0.0.1, por lo que solo se permiten las conexiones locales .

Obtuvo "Conexión rechazada" porque el reenvío de puerto NO estaba vinculado a sus interfaces de red (por ejemplo, eth0, wlan0). El puerto 2222 en su host ni siquiera está abierto a los hosts en la misma red (las interfaces loopback no son accesibles para otros hosts).

Si desea SSH directamente a la máquina virtual Vagrant desde un host remoto (en la misma LAN), la mejor y la más sencilla es usar la red pública (modo de red Bridged de VirtualBox).

Agregue lo siguiente a su Vagrantfile y haga una vagrant reload Vagrantfile .

Debería pasar a través de una de las interfaces de la red pública, debería poder obtener la dirección IP después de que la VM esté vagrant ssh , vagrant ssh y ejecutar ifconfig -a o ip addr para obtener la dirección IP a ssh desde los hosts remotos.

Muestra Vagrantfile

<!-- language: lang-rb --> config.vm.network :public_network # 2nd interface bridged mode

o más avanzado, puede configurar la interfaz de red predeterminada para la red pública

<!-- language: lang-rb --> config.vm.network "public_network", :bridge => ''en1: Wi-Fi (AirPort)''

Ver más => Red Pública


Si no desea cambiar la red a pública, puede anular el reenvío de puerto predeterminado para ssh con esto:

config.vm.network :forwarded_port, guest: 22, host: 2222, host_ip: "0.0.0.0", id: "ssh", auto_correct: true

Esto reenviará el puerto invitado 22 a 2222 en su máquina host y estará disponible desde cualquier ip, para que pueda acceder desde fuera de su máquina local.


También puede agregar otra regla a Vagrantfile como la siguiente:

config.vm.network :forwarded_port, guest: 1234, host: 22

Conéctese a Vagrant con el puerto predeterminado (2222) y edite /etc/ssh/sshd_config , luego agregue debajo del Port 22 el puerto previamente configurado como ''invitado'', lo que resulta:

... Port 22 #Uncomment this line if it''s commented Port 1234 ....

Finalmente, reinicie el demonio ssh o realice una vagrant reload Vagrantfile (si editó Vagrantfile mientras la VM estaba ejecutando, debe volver a cargarla) y ahora puede conectarse a Vagrant usando el puerto ''host'' (22 en mi caso) desde fuera de la computadora host.

No puede eliminar el puerto predeterminado, ya que Vagrant se bloquea al iniciar.