ssh-Agent-Weiterleitung für eine Vagrant-VM


12

Ich suche derzeit eine Einrichtung Vagrant Umgebung auf meinem Mac - Maschine, so dass ich laufen kann , vagrant upund es wird dann installieren rbenvund rubyund alles was ich brauche. Dann habe ich ein Bash-Skript, das alle meine Repos von Github abruft.

Das einzige, was ich tun muss, ist, dass mein neues Vagrant-VM jetzt einen SSH-Schlüssel generiert und ihn dann mit meinem Github-Konto verknüpft. Dies kann umständlich sein. Zumal ich meine Vagrant-Datei mit allen teilen möchte, die Zugriff auf unsere Repos haben, damit sie dasselbe tun können.

Daher dachte ich, ich könnte versuchen, mein Host-SSH an die VM weiterzuleiten, damit die VM mein Host-SSH an Github weiterleiten kann. Im Anschluss an diesen Artikel: Githubs-Komplettlösung habe ich die SSH-Konfiguration meines Hosts festgelegt:

Host localhost
    ForwardAgent yes

und in meine Landstreicherakte setzen

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

Wenn ich mich bei meiner VM anmelde und den folgenden Befehl ausführe, wird dieser Fehler angezeigt:

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

Gibt es jemanden, der ein ähnliches Setup ausprobiert hat? Die VM ist eine präzise 64-Box.

BEARBEITEN:

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
Was ist die Ausgabe von, envsobald Sie die virtuelle Maschine eingegeben haben?
Chris Down

SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812. Es scheint zu funktionieren. Sind Sie sicher, dass sich auf dem anderen Computer kein SSH-Agent in Konflikt befindet und der Schlüssel korrekt ist?
Chris Down

Ja, Laufen ssh -T git@github.comfunktioniert und ssh-add -Lzeigt den Schlüssel und ich habe nur einen von ihnen. brain bashing stuff
TheLegend

1
@TheLegend Es ist ein Schuss im Dunkeln, aber haben Sie überprüft, dass der ssh-Agent definitiv ausgeführt wird?
djf

Antworten:


10

Nach ein paar anstrengenden Stunden machte ich Fortschritte

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

config.ssh.private_key_pathist Ihr lokaler privater Schlüssel Ihr privater Schlüssel muss dem lokalen ssh-Agenten zur Verfügung stehen. Sie können mit überprüfen ssh-add -L, wenn es nicht aufgeführt ist, fügen Sie es mit hinzu ssh-add ~/.ssh/id_rsa. Vergessen Sie nicht, Ihren öffentlichen Schlüssel ~/.ssh/authorized_keysauf der Vagrant VM hinzuzufügen .

Dann vagrant destroyerstellen Sie es mit der neuen vagrant-Konfiguration neu. dann sollte es funktionieren, indem sowohl der Wirt als auch der Vagabund getestet werden

$ ssh -T git@github.com

Vagabund sollte das erste Mal zurückkehren

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.

Wenn Sie Ihren öffentlichen Schlüssel nicht ~/.ssh/authorized_keysauf der Vagrant-VM hinzugefügt haben .

Danach sollte es so lauten

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

Ich danke Ihnen allen, die mir geholfen haben. es war wegen dir, dass ich weiter graben ging :)


3
Meins sagt nicht "Hallo Ruberto!". Ist es in Ordnung, wenn dort ein anderer Name steht?
Darth Egregious

1
Yeah @ user973810 es ist nur eine Antwort von Github, also sollte es der Name sein, mit dem Sie sich bei Github registriert haben.
TheLegend

1
Bitte warnen Sie vor den Auswirkungen von vagrant destroy. Ich habe gerade eine Woche Arbeit verloren, weil ich dachte, es würde nur die Konfiguration zerstören.
A1rPun
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.