it-swarm.com.de

Wie verwende ich ssh agent forwarding mit "vagrant ssh"?

Anstatt ein neues SSH-Schlüsselpaar in einer Vagrant-Box zu erstellen, möchte ich das Schlüsselpaar, das ich auf meinem Host-Computer habe, mit agent forwarding wiederverwenden. Ich habe versucht, config.ssh.forward_agent auf TRUE in der Vagrantfile zu setzen, dann die VM neu zu starten und versucht, Folgendes zu verwenden:

vagrant ssh -- -A

... aber ich werde immer noch zur Eingabe eines Kennworts aufgefordert, wenn ich versuche, eine git-Kaufabwicklung durchzuführen. Irgendeine Idee, was mir fehlt?

96
Matt V.

Ich verwende Vagrant 2 unter OS X Mountain Lion.

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path ist Ihr lokaler privater Schlüssel
  2. Ihr privater Schlüssel muss dem lokalen ssh-agent zur Verfügung stehen. Sie können mit ssh-add -L überprüfen, ob es nicht aufgeführt ist, fügen Sie es mit ssh-add ~/.ssh/id_rsa hinzu.
  3. Vergessen Sie nicht, Ihren öffentlichen Schlüssel zu ~/.ssh/authorized_keys auf der Vagrant-VM hinzuzufügen. Sie können das Kopieren und Einfügen oder ein Tool wie ssh-copy-id verwenden.
84
LuizSignorelli

Fügen Sie es der Vagrantfile hinzu

Vagrant::Config.run do |config|
   # stuff
   config.ssh.forward_agent = true
end

http://vagrantup.com/v1/docs/config/ssh/forward_agent.html

80
EnabrenTane

Vergewissern Sie sich zusätzlich zum Hinzufügen von "config.ssh.forward_agent = true" zur Vagrant-Datei, dass der Host-Computer für die Agent-Weiterleitung eingerichtet ist. Github bietet dazu einen guten Leitfaden . (Sehen Sie sich den Abschnitt zur Fehlerbehebung an.).

18
HipsterHobo

Ich hatte dies mit den obigen Antworten zu 1.4.3, aber ich habe auf 1.5 aufgehört zu arbeiten. Ich muss jetzt ssh-add ausführen, um vollständig mit 1.5 arbeiten zu können.

Vorerst füge ich meinem Ansible-Provisioning-Skript die folgende Zeile hinzu . - name: Make sure ssk keys are passed to guest. local_action: command ssh-add

Ich habe auch eine Gist meines Setups erstellt: https://Gist.github.com/KyleJamesWalker/9538912

6

Wenn Sie Windows verwenden, funktioniert die SSH-Weiterleitung in Vagrant standardmäßig nicht ordnungsgemäß (aufgrund eines Fehlers in net-ssh). Sehen Sie sich diesen speziellen Vagrant-Fehlerbericht an: https://github.com/mitchellh/vagrant/issues/1735

Es gibt jedoch einen Workaround! Kopieren Sie einfach Ihren lokalen SSH-Schlüssel über ein einfaches Bereitstellungsskript in Ihre VagrantFile automatisch in den Vagrant VM. Hier ein Beispiel: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783

5
Tim Donohue

Das eigentliche Problem ist, dass Vagrant 127.0.0.1:2222 als Standardportweiterleitung ..__ verwendet. Sie können eine hinzufügen (nicht 2222, 2222 ist bereits standardmäßig belegt).

config.vm.network "forwarded_port", Gast: 22, Host: 2333, Host_ip: "0.0.0.0"

"0.0.0.0" ist eine Möglichkeit, die Anforderung von einer externen Verbindung zu akzeptieren Dann Ssh -p 2333 [email protected] (ändern Sie Ihre eigene Host-IP-Adresse, dud) Wird einwandfrei funktionieren. Danken Sie mir, rufen Sie mich einfach Leifeng an!

1
Leifeng

Als wir kürzlich das vagrant-aws-Plugin mit Vagrant 1.1.5 ausprobiert haben, sind wir auf ein Problem mit der Weiterleitung von SSH-Agenten gestoßen. Es stellte sich heraus, dass Vagrant IdentitiesOnly=yes ohne die Option erzwang, es in no zu ändern. Dies zwang Vagrant, nur den privaten Schlüssel zu betrachten, den wir in der Vagrantfile für den AWS-Anbieter aufgelistet haben.

Ich habe unsere Erfahrungen in einem Blogpost aufgeschrieben. Es kann sich irgendwann in eine Pull-Anfrage verwandeln.

1
Benjamin Oakes

Unter Windows besteht das Problem darin, dass Vagrant nicht mit dem ssh-agent von git-bash kommunizieren kann. Es weiß jedoch, wie PuTTYs Pageant verwendet wird. Solange Pageant läuft und Ihren SSH-Schlüssel geladen hat und Sie config.ssh.forward_agent gesetzt haben, sollte dies funktionieren.

Siehe diesen Kommentar für Details.

Wenn Sie Pageant verwenden, ist die Workaround-Aktualisierung des Vagrantfile zum Kopieren von SSH-Schlüsseln unter Windows nicht mehr erforderlich.

0
Josh Kelley

Stellen Sie sicher, dass die VM keinen eigenen SSH-Agenten startet. Ich hatte diese Zeile in meinem ~/.profile

eval `ssh-agent`

Nach dem Entfernen funktionierte die SSH-Agentenweiterleitung.

0