ssh-agent encaminhando para uma VM Vagrant

12

Atualmente, estou procurando configurar um ambiente Vagrant na minha máquina Mac, para que eu possa executar vagrant up e Em seguida, instalarei rbenv e ruby e tudo o que preciso. Então eu tenho um script Bash que irá buscar todos os meus repositórios do github.

A única coisa é que o meu novo vm vagrant agora precisa gerar uma chave ssh e depois vinculá-la à minha conta do Github. Isso pode ser complicado. Especialmente desde que eu gostaria de compartilhar meu arquivo Vagrant com todos aqueles que têm acesso aos nossos repositórios para que eles possam fazer o mesmo.

Então eu pensei em tentar encaminhar meus hosts ssh para a VM para que a VM pudesse encaminhar meu host ssh para o Github. Seguindo este artigo: Githubs passo a passo , eu configurei meus hosts como ssh config:

Host localhost
    ForwardAgent yes

e definido no meu arquivo vagrant

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

e quando eu logar na minha VM e executar o seguinte comando eu recebo este erro:

$ ssh -T [email protected]'
Permission denied (publickey)

Existe alguém que tenha tentado uma configuração semelhante? A VM é uma caixa 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
    
por TheLegend 27.05.2013 / 11:17

1 resposta

11

Depois de algumas horas exaustivas, progredi

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

config.ssh.private_key_path é sua chave privada local Sua chave privada deve estar disponível para o agente ssh local. Você pode verificar com ssh-add -L , se não estiver listado, adicione-o com ssh-add ~/.ssh/id_rsa . Não se esqueça de adicionar sua chave pública a ~/.ssh/authorized_keys na VM do Vagrant.

Então vagrant destroy e reconstrua usando a nova configuração do vagrant. então deve funcionar testar tanto o host quanto o vagrant usando

$ ssh -T [email protected]

vagrant deve retornar pela primeira 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.

Se você não adicionou sua chave pública a ~/.ssh/authorized_keys na VM do Vagrant.

Depois disso, deve ler como

vagrant@precise64:~$ ssh -T [email protected]
Hi Ruberto! You've successfully authenticated, but GitHub does not provide shell access.

Obrigado a todos que me ajudaram. foi por causa de você que eu fui cavar ainda mais:)

    
por 27.05.2013 / 15:08