SSH Weiterleitung von Agenten innerhalb des Docker-Compose-Containers

8

Could not open a connection to your authentication agent.

Ich folge dem Ansatz, den $SSH_AUTH_SOCK als Volume zu mounten , aber mit compose.

Einrichtung

~/.ssh/config

%Vor%

Dockerfile:

%Vor%

Verfassen Sie yaml:

%Vor%

ANMERKUNG: Ich habe Interpolation auf meinem Compose ausgeführt, also wird $SSH_AUTH_SOCK beispielsweise durch /private/tmp/com.apple.launchd.ZxGtZy6a9w/Listeners ersetzt.

Ich habe das Weiterleitungs-Setup auf meinem Host-OSX richtig, es funktioniert gegen einen anderen Ubuntu-Host.

Ausführen

docker-compose run web bash

In Container

Wenn ich ssh-add -L starte, wird Could not open a connection to your authentication agent.

angezeigt

Wenn ich ssh-agent starte, ergibt dies

%Vor%

Wenn ich echo $SSH_AUTH_SOCK von bash aus starte, liefert es /ssh-agent

Frage

Es scheint so zu sein, dass compose die SSH_AUTH_SOCK für bash verfügbar macht, aber es scheint, dass die ssh-agent nicht dieselbe env bekommt. Was vermisse ich?

    
kross 01.10.2015, 22:17
quelle

2 Antworten

9

Ich habe es mit whilp / ssh-agent gelöst, obwohl Sie beachten sollten, dass dies nicht verwendet SSH_AUTH_SOCK direkt und benötigt einen zusätzlichen Container mit langer Laufzeit. Ich werde diesen Ansatz in Andockschienen integrieren, um die Benutzung zu vereinfachen.

  1. Starten Sie einen lang laufenden Container docker run -d --name=ssh-agent whilp/ssh-agent:latest

  2. Fügen Sie Ihren Schlüssel hinzu docker run --rm --volumes-from=ssh-agent -v ~/.ssh:/ssh -it whilp/ssh-agent:latest ssh-add /ssh/id_rsa

  3. Listen Sie Ihre Schlüssel auf docker run --rm --volumes-from=ssh-agent -v ~/.ssh:/ssh -it whilp/ssh-agent:latest ssh-add -L

  4. bash in einen Container und überprüfe den Schlüssel mit ssh -T [email protected]

Mein Yaml sieht so aus:

%Vor%     
kross 02.10.2015, 16:46
quelle
0

Die vorherige akzeptierte Antwort mit whilp / ssh-agent funktionierte für mich aus irgendeinem Grund nicht (es funktionierte vorher aber seit dem letzten ändert es nicht und ich weiß nicht warum), also habe ich meinen eigenen Agentencontainer erstellt:

docker-ssh-agent

basierend auf minimalem alpine:3.4 Basisbild. Wer also noch Probleme mit OSX hat, checkt README und es ist jetzt wirklich einfach, es zu starten!

    
nardeas 09.12.2016 08:07
quelle

Tags und Links