En lugar de crear un nuevo par de claves SSH en una caja de vagabundos, me gustaría reutilizar el par de claves que tengo en mi máquina host, utilizando el reenvío de agentes . Intenté configurar config.ssh.forward_agent en TRUE en Vagrantfile, luego reinicié la VM e intenté usar:
vagrant ssh -- -A
... pero todavía se me pide una contraseña cuando intento hacer un pago con git. ¿Alguna idea de lo que me estoy perdiendo?
ssh
virtualbox
forwarding
ssh-keys
vagrant
Matt V.
fuente
fuente
Respuestas:
Estoy usando vagrant 2 en OS X Mountain Lion.
config.ssh.private_key_path
es tu clave privada localssh-add -L
, si no está en la lista, agréguelo conssh-add ~/.ssh/id_rsa
~/.ssh/authorized_keys
Vagrant VM. Puede hacerlo copiando y pegando o usando una herramienta como ssh-copy-idfuente
config.ssh.private_key_path = "~/.ssh/id_rsa"
hace que Vagrant aguanteWaiting for VM to boot
.config.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa' ]
ssh-add -K
funcionó (y tambiénconfig.ssh.forward_agent = true
). Vea esta respuestaAgréguelo al Vagrantfile
Ver los documentos
fuente
config.ssh.forward_agent
a su archivo de configuración, entonces, ¿qué nueva información proporciona esta respuesta? Incluso el enlace ya está en cuestión.Además de agregar "config.ssh.forward_agent = true" al archivo vagrant, 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).
fuente
Tenía esto funcionando con las respuestas anteriores en 1.4.3, pero dejé de trabajar en 1.5. Ahora tengo que correr
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 he creado un resumen de mi configuración: https://gist.github.com/KyleJamesWalker/9538912
fuente
Si está en Windows, el reenvío SSH en Vagrant no funciona correctamente de forma predeterminada (debido a un error en net-ssh). Vea este informe de error de Vagrant en particular: https://github.com/mitchellh/vagrant/issues/1735
¡Sin embargo, hay una solución! Simplemente copie automáticamente su clave SSH local en la máquina virtual Vagrant a través de un simple script de aprovisionamiento en su VagrantFile. Aquí hay un ejemplo: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783
fuente
Cuando probamos recientemente el
vagrant-aws
complemento con Vagrant 1.1.5, encontramos un problema con el reenvío del agente SSH. Resultó que Vagrant estaba forzandoIdentitiesOnly=yes
sin opción a cambiarlono
. Esto obligó a Vagrant a mirar solo la clave privada que enumeramos en elVagrantfile
proveedor de AWS.Escribí nuestras experiencias en una publicación de blog . Puede convertirse en una solicitud de extracción en algún momento.
fuente
Vagrant up
? Ahora mismo tengo que crear la máquina, iniciar sesión manualmente y luego agregar mi clave pública a /home/vagrant/.ssh/authorized_keysAsegúrese de que la VM no inicie su propio agente SSH. Tenía esta línea en mi
~/.profile
Después de eliminarlo, el reenvío del agente SSH funcionó.
fuente
El verdadero problema es que Vagrant usa 127.0.0.1:2222 como reenvío de puertos predeterminado. Puede agregar uno (no 2222, 2222 ya está ocupado por defecto)
config.vm.network "puerto_enviado", invitado: 22, host: 2333, host_ip: "0.0.0.0"
"0.0.0.0" es una forma de tomar una solicitud desde una conexión externa. luego ssh -p 2333 [email protected] (cambie a su propia dirección IP de host, dud) funcionará bien. ¡Gracias, solo llámame Leifeng!
fuente
En Windows, el problema es que Vagrant no sabe cómo comunicarse con el agente ssh de git-bash. Sin embargo, sí sabe cómo usar Pageant de PuTTY. Por lo tanto, siempre que Pageant se esté ejecutando 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 usa Pageant, la solución alternativa de actualizar Vagrantfile para copiar las claves SSH en Windows ya no es necesaria.
fuente