encaminhamento de ssh-agent para uma VM Vagrant

12

Atualmente estou olhando para a criação de um Vagrant ambiente na minha máquina Mac, para que eu possa correr vagrant upe vai em seguida, instalar rbenve rubye todos necessidade I. Então eu tenho um script Bash que buscará todos os meus repositórios no github.

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

Por isso, pensei em tentar encaminhar meus hosts ssh para a VM para que a VM possa encaminhar meu host ssh para o Github. Seguindo este artigo: Passo a passo do Githubs , defino meus hosts 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 entro na minha VM e executo o seguinte comando, recebo este erro:

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

Existe alguém que tentou uma configuração semelhante? A VM é uma caixa64 precisa.

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
A lenda
fonte
1
Qual é o resultado de envuma vez que você entrou na máquina virtual?
Chris Baixo
SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812. Parece estar funcionando. Tem certeza de que não possui um agente SSH conflitante na outra máquina e a chave está correta?
Chris Down
Sim, funciona ssh -T [email protected]funciona e ssh-add -Lmostra a chave e eu só tenho um deles. coisas contundentes no cérebro
TheLegend 27/05
1
@TheLegend É um tiro no escuro, mas você verificou se o agente ssh está definitivamente funcionando?
Djf 27/05

Respostas:

10

Depois de algumas horas cansativas, fiz progressos

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, adicioná-lo ssh-add ~/.ssh/id_rsa. Não esqueça de adicionar sua chave pública ~/.ssh/authorized_keysna VM do Vagrant.

Em seguida, vagrant destroyreconstrua-o usando a nova configuração vagrant. então deve funcionar testar o hospedeiro e o vagabundo usando

$ ssh -T [email protected]

vagabundo 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 ~/.ssh/authorized_keysna VM do Vagrant.

Lá depois 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 sua causa que eu fui cavando mais :)

A lenda
fonte
3
O meu não diz "Oi Ruberto!". Tudo bem se diz um nome diferente lá?
Darth Egregious #
1
Sim, user973810 é apenas uma resposta do Github, portanto, esse deve ser o nome com o qual você se registrou no Github.
TheLegend
1
Por favor, avise sobre as implicações de vagrant destroy. Acabei de perder uma semana de trabalho por causa disso, pensei que isso destruiria apenas a configuração.
precisa saber é o seguinte