with provisioner keys create ssh virtualbox forwarding ssh-keys vagrant

provisioner - ¿Cómo utilizar el reenvío del agente ssh con "vagabundo ssh"?



vagrant ssh keys (9)

En lugar de crear un nuevo par de claves SSH en un cuadro vagabundo, me gustaría volver a utilizar el par de claves que tengo en mi equipo host, utilizando el reenvío de agentes . Intenté configurar config.ssh.forward_agent en TRUE en Vagrantfile, luego reinicié la máquina virtual y traté de usar:

vagrant ssh -- -A

... pero todavía me piden una contraseña cuando intento hacer un pago por git. ¿Alguna idea de lo que me estoy perdiendo?


Además de agregar "config.ssh.forward_agent = true" al archivo vagabundo, asegúrese de que la computadora host esté configurada para el reenvío de agentes. Github proporciona una buena guía para esto. (Consulte la sección de solución de problemas).


Agrégalo al Vagrantfile

Vagrant::Config.run do |config| # stuff config.ssh.forward_agent = true end

config.ssh.forward_agent


Asegúrese de que la máquina virtual no ejecute su propio agente SSH. Tenía esta línea en mi ~/.profile

eval `ssh-agent`

Después de eliminarlo, el reenvío del agente SSH funcionó.


Cuando probamos recientemente el complemento vagrant-aws con Vagrant 1.1.5, nos encontramos con un problema con el reenvío de agente SSH. Resultó que Vagrant estaba forzando IdentitiesOnly=yes sin una opción para cambiarlo a no . Esto obligó a Vagrant a solo mirar la clave privada que Vagrantfile en el Vagrantfile para el proveedor de AWS.

Escribí nuestras experiencias en una publicación de blog . Puede convertirse en una solicitud de extracción en algún momento.


El verdadero problema es que Vagrant usa 127.0.0.1:2222 como port-forward predeterminado. Puede agregar uno (no 2222, 2222 ya está ocupado por defecto)

config.vm.network "forwarded_port", guest: 22, host: 2333, host_ip: "0.0.0.0"

"0.0.0.0" es una forma de recibir una solicitud de conexión externa. entonces ssh -p 2333 [email protected] (cambiar a su propia dirección IP del host, no funciona) funcionará bien. ¡Doy gracias, solo llámame Leifeng!


En Windows, el problema es que Vagrant no sabe cómo comunicarse con ssh-agent de git-bash. Sin embargo, sabe cómo usar el concurso de PuTTY. Por lo tanto, siempre y cuando el concurso esté en ejecución y haya cargado su clave SSH, y siempre que haya configurado config.ssh.forward_agent, esto debería funcionar.

Ver este comentario para más detalles.

Si utiliza el concurso, entonces la solución alternativa de actualizar Vagrantfile para copiar claves SSH en Windows ya no es necesaria.


Esto funcionaba con las respuestas anteriores en 1.4.3, pero dejé de trabajar en 1.5. Ahora tengo que ejecutar ssh-add para trabajar completamente con 1.5.

Por ahora agrego la siguiente línea a mi script de aprovisionamiento ansible. - name: Make sure ssk keys are passed to guest. local_action: command ssh-add

También creé la esencia de mi configuración: https://gist.github.com/KyleJamesWalker/9538912


Estoy usando vagabundo 2 en OS X Mountain Lion.

Vagrant.configure("2") do |config| config.ssh.private_key_path = "~/.ssh/id_rsa" config.ssh.forward_agent = true end

  1. config.ssh.private_key_path es tu clave privada local
  2. Su clave privada debe estar disponible para el ssh-agent local. Puede verificar con ssh-add -L , si no está en la lista agréguelo con ssh-add ~/.ssh/id_rsa
  3. No olvides agregar tu clave pública a ~/.ssh/authorized_keys en la máquina virtual Vagrant. Puede hacerlo copiando y pegando o usando una herramienta como ssh-copy-id