Einrichten von SSH-Gruppenschlüsseln ohne Beeinträchtigung von ~/.ssh/config in Linux

Einrichten von SSH-Gruppenschlüsseln ohne Beeinträchtigung von ~/.ssh/config in Linux

Ich muss einen SSH-Gruppenschlüssel einrichten, der zum Veröffentlichen in einem Remote-Git-Repository verwendet wird.

Da git (und vermutlich auch viele andere Programme) die Definition eines Flag-Lags nicht erlaubt, ssh -istammt die Information, welcher Schlüssel verwendet wird, aus den Standardeinstellungen oder aus dem, was in~/.ssh/config

Dies würde eine neue Verwaltungsaufgabe für Benutzer erfordern, die über diese Berechtigung verfügen müssen (d. h. die richtigen Einträge in ihrer ~/.ssh/configDatei hinzufügen).

Gibt es eine Möglichkeit, mir diesen Aufwand zu sparen? Ich konnte keine Umgebungsvariable finden, die von OpenSSH gelesen werden könnte, da dies eine Lösung wäre (indem ich ein Wrapping-Skript erstelle, das das Erforderliche tut).

Antwort1

Die Antwort lautet also wie folgt (danke, Tink):

Die Verwendung eines SSH-Agenten zum Speichern des Schlüssels funktioniert immer. Dazu können Sie den Aufruf in ein Skript kapseln:

#!/bin/bash
key=$1
[[ "$SSH_AGENT_PID" ]] || eval $(ssh-agent)
ssh-add $key

#...the rest of the script...

Im speziellen Fall von Git gibt es eine GIT_SSHUmgebungsvariable, die auf den Befehl verweist, der anstelle von ssh aufgerufen wird. Daher ist es möglich, sshmit dem -iFlag ein Problem zu verursachen.

Nur zur Warnung, dies ist ein Proof of Concept. Sie müssen sicherstellen, dass die Umgebung nach dem Laden des Skripts nicht beeinträchtigt wird (d. h. wenn ein Agent vorhanden war und der Schlüssel nicht geladen wurde, müssen Sie den Schlüssel entfernen, wenn kein Agent vorhanden war, entfernen Sie den Agenten usw.).

verwandte Informationen