Absicht: Um von jeder Entwicklungsumgebung aus bereitstellen zu können lan-example.com
; sei es direkt vom virtuellen Betriebssystem oder einem Einzelbetriebssystem oder sogar über das Internet mit EINEM in Keepass gespeicherten SSH-Schlüssel. Ich kann dies derzeit nicht vom Betriebssystem von Vagrant aus tun, es sei denn, ich generiere ausdrücklich einen eigenen Schlüssel und autorisiere ihn auf jedem meiner Bereitstellungsserver. Ich glaube, der Weg, das zu erreichen, was ich will, ist die Weiterleitung des Benutzeragenten, oder?
Host-Betriebssystem
- Windows 7 x64
- Von Puttygen generierter SSH-Schlüssel:
C:\Users\Administrator\.ssh\id_rsa.ppk
- Keepass mit Keeagent speichert meinen SSH-Schlüssel. Keeagent ist auf den „Agent“-Modus eingestellt
- pageant.exe ist installiert, wird aber nicht ausgeführt
- Wenn ich mit meinem Schlüssel eine Verbindung zu externen/internen LAN-Servern herstellen möchte, greift Putty auf Keeagent zurück – Putty speichert die Speicherorte der privaten Schlüssel nicht in seiner Konfiguration.
C:\Benutzer\Administrator.ssh\config
Host 192.168.55.2
ForwardAgent yes
Vagrant-Datei
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.network :private_network, ip: '192.168.55.2'
config.ssh.forward_agent = true
# Why would I need to set this if Keeagent is handling things?
config.ssh.private_key_path = '~/.ssh/id_rsa_jake_mitchell.ppk'
end
Gastbetriebssystem (Vagrant)
- Ubuntu x64
- 192.168.55.2, nur über Host erreichbar
- Es sind keine SSH-Schlüssel vorhanden
/home/vagrant/.ssh
(ich habe sie entfernt). Die Absicht besteht darin, dass User Agent Forwarding über das Host-Betriebssystem (Keeagent) sich um die Verwendung des Schlüssels kümmert
LAN-Webhost (Intranet-Websites)
- Nehmen wir an, seine Domäne ist
lan-example.com
- Es ermöglicht eine passwortlose SSH-Anmeldung nur mit dem öffentlichen Schlüssel id_rsa.ppk
- 192.168.0.2
- Die Benutzeragentenweiterleitung ist in sshd aktiviert
Problem:
Was funktioniert (unter Verwendung des Host-Betriebssystems): Putty, Verbindung herstellen lan-example.com
ohne expliziten Verweis auf den SSH-Schlüssel.
Was nicht funktioniert (bei Verwendung des Gastbetriebssystems): Es wird angezeigt, dass keine zu verwendenden Schlüssel vorhanden sind.ssh -v [email protected]
Mir ist etwas aufgefallen an derBetaversion von KeeagentDadurch kann ich SSH_AUTH_SOCK festlegen. Ich habe dies getan und eine NFS-Freigabe eingerichtet, die es dem Gastbetriebssystem ermöglicht, die Datei zu lesen. Dies ändert jedoch nichts. Wie funktioniert die Agentenweiterleitung in dieser Art von Umgebung überhaupt? Was ist bei Windows anders, das dazu führt, dass dies fehlschlägt?
Antwort1
Sie müssen vom Host-Betriebssystem (unter Windows mit PuTTY) eine SSH-Verbindung herstellen und dabei die Agent-Weiterleitung aktivieren. Von dieser Sitzung aus müssen Sie dann eine SSH-Verbindung vom Gast-Betriebssystem zum Server herstellen.