inoltro di ssh-agent per una VM Vagrant


12

Attualmente sto guardando la creazione di un Vagrant ambiente sulla mia macchina Mac, in modo che possa funzionare vagrant upe sarà quindi installare rbenved rubye tutti hanno bisogno io. Quindi ho uno script Bash che recupererà tutti i miei repository da Github.

L'unica cosa è che il mio nuovo vagrant vm deve ora generare una chiave ssh e quindi collegarla al mio account Github. Questo può essere ingombrante. Soprattutto perché vorrei condividere il mio file Vagrant con tutti quelli che hanno accesso ai nostri repository in modo che possano fare lo stesso.

Quindi ho pensato di provare a inoltrare i miei host ssh alla VM in modo che la VM possa inoltrare i miei host ssh a Github. A seguito di questo articolo: procedura dettagliata di Githubs , ho impostato i miei host ssh config:

Host localhost
    ForwardAgent yes

e impostato nel mio file vagabondo

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

e quando accedo alla mia macchina virtuale ed eseguo il comando seguente ottengo questo errore:

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

C'è qualcuno che ha provato una configurazione simile? La VM è una scatola precisa64.

MODIFICARE:

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
Qual è l'output di envuna volta entrato nella macchina virtuale?
Chris Down,

SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812. Sembra che funzioni. Sei sicuro di non avere un agente SSH in conflitto sull'altro computer e la chiave è corretta?
Chris Down,

sì, la corsa ssh -T git@github.comfunziona e ssh-add -Lmostra la chiave e ne ho solo una. roba del cervello
TheLegend,

1
@TheLegend È uno sparo nel buio, ma hai verificato che l'agente ssh stia funzionando definitivamente?
DJF

Risposte:


10

Dopo alcune ore estenuanti ho fatto progressi

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

config.ssh.private_key_pathè la tua chiave privata locale La tua chiave privata deve essere disponibile per l'agente ssh locale. Puoi verificare con ssh-add -L, se non è elencato aggiungilo con ssh-add ~/.ssh/id_rsa. Non dimenticare di aggiungere la tua chiave pubblica ~/.ssh/authorized_keyssu Vagrant VM.

Quindi vagrant destroye ricostruiscilo usando la nuova configurazione del vagabondo. quindi dovrebbe funzionare testando sia l'host che il vagabondo

$ ssh -T git@github.com

vagabondo dovrebbe tornare la prima volta

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 non hai aggiunto la tua chiave pubblica ~/.ssh/authorized_keyssu Vagrant VM.

Lì dopo dovrebbe leggere come

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

Grazie a tutto ciò che mi ha aiutato. è stato grazie a te che sono andato a scavare ulteriormente :)


3
Il mio non dice "Ciao Ruberto!". Va bene se dice un nome diverso lì?
Darth Egregious,

1
Sì @ user973810 è solo una risposta di Github, quindi dovrebbe essere il nome con cui ti sei registrato con Github.
TheLegend

1
Si prega di avvertire delle implicazioni di vagrant destroy. Ho appena perso una settimana di lavoro a causa di ciò, ho pensato che avrebbe solo distrutto la configurazione.
A1rPun
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.