reenvío de agente ssh para una máquina virtual Vagrant


12

Actualmente estoy mirando a la creación de un vagabundo medio ambiente en mi máquina Mac, de modo que pueda funcionar vagrant upy que va a continuación, instalar rbenvy rubyya todos necesidad I. Luego tengo un script Bash que buscará todos mis repositorios de github.

Lo único es que mi nuevo vm vagabundo ahora debe generar una clave ssh y luego vincularla a mi cuenta de Github. Esto puede ser engorroso. Especialmente porque me gustaría compartir mi archivo Vagrant con todos aquellos que tienen acceso a nuestros repositorios para que puedan hacer lo mismo.

Así que pensé que podría intentar reenviar mis hosts ssh a la VM para que la VM pueda reenviar mi host ssh a Github. Siguiendo este artículo: Tutorial de Githubs , configuro la configuración ssh de mi host:

Host localhost
    ForwardAgent yes

y establecer en mi archivo vagabundo

Vagrant.configure("2") do |config|
  config.ssh.forward_agent = true
  ...
end

y cuando inicio sesión en mi VM y ejecuto el siguiente comando me sale este error:

$ ssh -T git@github.com`
Permission denied (publickey)

¿Hay alguien que haya probado una configuración similar? La VM es una caja precisa64.

EDITAR:

env:

vagrant@precise64:~$ env
TERM=xterm-256color
SHELL=/bin/bash
SSH_CLIENT=10.0.2.2 53068 22
SSH_TTY=/dev/pts/0
LC_ALL=en_US
USER=vagrant
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
RBENV_ROOT=/opt/rbenv
SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812
MAIL=/var/mail/vagrant
PATH=/opt/rbenv/shims:/opt/rbenv/bin:/opt/rbenv/bin/rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/vagrant_ruby/bin
PWD=/home/vagrant
SHLVL=1
HOME=/home/vagrant
LOGNAME=vagrant
SSH_CONNECTION=10.0.2.2 53068 10.0.2.15 22
LC_CTYPE=UTF-8
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/env

1
¿Cuál es el resultado envuna vez que ha ingresado a la máquina virtual?
Chris Down

SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812. Parece estar funcionando. ¿Está seguro de que no tiene un agente SSH en conflicto en la otra máquina y que la clave es correcta?
Chris Down

Sí, funciona ssh -T git@github.comfunciona y ssh-add -Lmuestra la clave y solo tengo uno de ellos. cosas de ataque cerebral
TheLegend

1
@TheLegend Es un tiro en la oscuridad, pero ¿has comprobado que el agente ssh definitivamente se está ejecutando?
djf

Respuestas:


10

Después de unas horas agotadoras, avancé

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

config.ssh.private_key_pathes su clave privada local Su clave privada debe estar disponible para el agente ssh local. Puede consultar con ssh-add -L, si no está en la lista, agréguelo con ssh-add ~/.ssh/id_rsa. No olvide agregar su clave pública ~/.ssh/authorized_keysen la máquina virtual Vagrant.

Luego vagrant destroyy reconstruirlo usando la nueva configuración vagabunda. entonces debería funcionar probar tanto el host como el vagabundo usando

$ ssh -T git@github.com

vagabundo debe volver la primera vez

The authenticity of host 'github.com (204.232.175.90)' can't be established.
RSA key fingerprint is 16:27:ac:a5:7c:28:2d:36:63:2b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,205.232.175.93' (RSA) to the list of known hosts.

Si no agregó su clave pública ~/.ssh/authorized_keysen la VM Vagrant.

Después de eso debería leer como

vagrant@precise64:~$ ssh -T git@github.com
Hi Ruberto! You've successfully authenticated, but GitHub does not provide shell access.

Gracias a todos por ayudarme. fue por ti que fui a cavar más :)


3
El mío no dice "¡Hola Ruberto!". ¿Está bien si dice un nombre diferente allí?
Darth Egregious

1
Sí, @ user973810 es solo una respuesta de Github, por lo que debería ser el nombre con el que te has registrado en Github.
TheLegend

1
Por favor, advierta sobre las implicaciones de vagrant destroy. Acabo de perder una semana de trabajo debido a esto, pensé que solo destruiría la configuración.
A1rPun
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.