SSH-AGENT(1)

BEZEICHNUNG
ssh-agent - OpenSSH-Authentifizierungsvermittler

ÜBERSICHT
ssh-agent [-c | -s] [-DdTU] [-a Bindungsadresse] [-E Fingerabdruck-Hash] [-O Option] [-P erlaubte_Anbieter] [-t Lebensdauer] ssh-agent [-TU] [-a Bindungsadresse] [-E Fingerabdruck-Hash] [-O Option] [-P erlaubte_Anbieter] [-t Lebensdauer] Befehl [Arg …] ssh-agent [-c | -s] -k ssh-agent -u

BESCHREIBUNG
ssh-agent ist ein Programm zum Halten privater Schlüssel, die für asymmetrische Authentifizierung verwandt werden. Mittels Umgebungsvariablen kann der Vermittler gefunden und automatisch zur Authentifizierung verwandt werden, wenn mittels ssh(1) eine Anmeldung auf anderen Maschinen erfolgt.

Folgende Optionen stehen zur Verfügung:

-a Bindungsadresse
    Bindet den Vermittler an das UNIX-domain -Socket Bindungsadresse. Die Vorgabe ist die Erstellung eines Sockets an einem zufälligen Pfad, der auf $HOME/.ssh/agent/s.* passt.

-c  Erstellt C-Shell-Befehle auf die Standardausgabe. Dies ist die Vorgabe, falls SHELL so aussieht, dass es eine Csh-artige Shell ist.

-D  Vordergrundmodus. Ist diese Option angegeben, wird ssh-agent kein »fork« durchführen.

-d  Fehlersuchmodus. Ist diese Option angegeben, wird ssh-agent kein »fork« durchführen und Fehlersuchinformationen auf die Standardfehlerausgabe schreiben.

-E Fingerabdruck-Hash
    Gibt den bei der Anzeige von Schlüssel-Fingerabdrücken zu verwendenden Hash-Algorithmus an. Gültige Optionen sind »md5« und »sha256«. Die Vorgabe ist »sha256«.

-k  Tötet den derzeitigen Vermittler (angegeben in der Umgebungsvariablen SSH_AGENT_PID).

-O Option
    Gibt beim Start von ssh-agent eine Option an. Die unterstützten Optionen sind: allow-remote-pkcs11, no-restrict-websafe und websafe-allow.

    Die Option allow-remote-pkcs11 erlaubt es Clients eines weitergeleiteten ssh-agent, PKCS#11- oder FIDO-Bereitstellungsbibliotheken zu laden. Standardmäßig dürfen nur lokale Clients diese Aktion durchführen. Beachten Sie, dass die Anzeige, dass ein ssh-agent -Client in der Ferne ist, durch ssh(1) erfolgt und andere Werkzeuge zur Weiterleitung des Zugriffs auf den Vermittler-Socket diese Beschränkung umgehen könnten.

    Die Option no-restrict-websafe weist ssh-agent an, Signaturen mittels FIDO-Schlüsseln zu erlauben, die Web-Authentifizierungsanfragen sein könnten. Standardmäßig verweigert ssh-agent Signaturanfragen für FIDO-Schlüssel, bei denen die Schlüsselanwendungszeichenkette nicht mit »ssh:« beginnt und wenn die zu signierenden Daten nicht eine ssh(1) -Benutzerauthentifizierungsanfrage oder eine ssh-keygen(1) -Signatur zu sein scheinen. Das Standardverhalten verhindert weitergeleiteten Zugriff auf einen FIDO-Schlüssel auch durch implizites Weiterleiten der Fähigkeit, sich beim Webauftritten zu authentifizieren.

    Alternativ erlaubt die Option websafe-allow die Angabe einer Musterliste von zentralen Anwendungszeichenketten, um die standardmäßige Erlaubnisliste zu ersetzen, beispielsweise: »websafe-allow=ssh:*,example.org,*.example.com«.

    Siehe MUSTER in ssh_config(5) für eine Beschreibung der Muster-Listen-Syntax.

-P erlaubte_Anbieter
    Gibt eine Musterliste von akzeptierbaren Pfaden für PKCS#11-Anbieter- und dynamischen FIDO-Authentifikator-Mittelschicht-Bibliotheken an, die mit der Option -S oder -s von ssh-add(1) verwandt werden dürfen. Bibliotheken, die nicht auf die Musterliste passen, werden abgelehnt. Die Standard-Musterliste ist »/usr/lib*/*,/usr/local/lib*/*«.

    Siehe MUSTER in ssh_config(5) für eine Beschreibung der Muster-Listen-Syntax.

-s  Erstellt Bourne-Shell-Befehle auf die Standardausgabe. Dies ist die Vorgabe, falls SHELL nicht nach einer Csh-artigen Shell aussieht.

-T  Bindet das Vermittler-Socket in einem zufälligen Unterverzeichnis der Form $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid> anstelle des Standardverhaltens der Verwendung eines zufälligen Namens, der auf $HOME/.ssh/agent/s.* passt.

-t Lebensdauer
    Setzt einen Vorgabewert für die maximale Lebensdauer von in dem Vermittler hinzugefügten Identitäten fest. Die Lebensdauer kann in Sekunden oder in einem in sshd_config(5) spezifizierten Dateiformat angegeben werden. Eine für eine Identität mit ssh-add(1) angegebene Lebensdauer setzt diesen Wert außer Kraft. Ohne diese Option ist die maximale Lebensdauer standardmäßig »für immer«.

-U  Weist ssh-agent an, keine zurückgebliebenen Vermittler-Sockets unter $HOME/.ssh/agent/ zu bereinigen.

-u  Weist ssh-agent an, nur zurückgebliebene Vermittler-Sockets unter $HOME/.ssh/agent/ zu bereinigen und sich dann sofort zu beenden. Falls diese Option zweimal angegeben wird, wird ssh-agent zurückgebliebene Vermittler-Sockets unabhängig von dem Rechnernamen, der sie erstellte, löschen.

Befehl [Arg …]
    Wenn ein Befehl (und optionale Argumente) übergeben werden, wird dieser als Unterprozess des Vermittlers ausgeführt. Der Vermittler beendet sich automatisch, wenn der auf der Befehlszeile übergebene Befehl sich beendet.

Es gibt drei grundsätzliche Arten, den Vermittler einzurichten. Die erste ist beim Start der X-Sitzung, wobei alle anderen Fenster und Programme als Kind des Programms ssh-agent gestartet werden. Der Vermittler startet einen Befehl, unter dem seine Umgebungsvariablen exportiert werden, beispielsweise ssh-agent xterm &. Wenn sich der Befehl beendet, beendet sich auch der Vermittler.

Die zweite Methode wird für Anmeldesitzungen verwandt. Wenn ssh-agent gestartet wird, gibt es die Shell-Befehle aus, die benötigt werden, um seine Umgebungsvariablen zu setzen, die wieder in der aufrufenden Shell ausgewertet werden können. Beispiel: eval `ssh-agent -s`.

In beiden dieser Fällen schaut sich ssh(1) diese Umgebungsvariablen an und verwendet sie, um eine Verbindung zum Vermittler aufzubauen.

Die dritte Art ssh-agent auszuführen, ist über Socket-Aktivierung durch einen überwachenden Prozess wie systemd(1). In diesem Modus erstellt der überwachende Prozess das auf Anfragen wartende Socket und ist für das bedarfsgerechte Starten von ssh-agent verantwortlich, ebenso wie für die Mitteilung des Orts des Sockets-Bearbeiters an andere Programme in der Sitzung des Benutzers. Socket-Aktivierung wird verwandt, wenn ssh-agent mit einem der Schalter -d oder -D gestartet wird, keine Socket-Adresse zum Warten auf Anfragen mittels des Schalters -a angegeben wird und sowohl die Umgebungsvariablen LISTEN_FDS und LISTEN_PID korrekt den überwachenden Prozess bereitstellen.

Der Vermittler hat anfänglich keine privaten Schlüssel. Schlüssel werden mittels ssh-add(1) oder durch ssh(1), wenn AddKeysToAgent in ssh_config(5) gesetzt ist, hinzugefügt. In ssh-agent können mehrere Identitäten gleichzeitig gespeichert werden und ssh(1) wird diese automatisch verwenden, falls vorhanden. Mittels ssh-add(1) werden auch Schlüssel aus ssh-agent entfernt und darin befindliche Schlüssel abgefragt.

Verbindungen zu ssh-agent können von weiteren fernen Rechnern mittels der Option -A von ssh(1) weitergeleitet werden (lesen Sie aber die dort dokumentierten Warnungen), wodurch die Notwendigkeit des Speicherns von Authentifizierungsdaten auf anderen Maschinen vermieden wird. Authentifizierungs-Passphrasen und private Schlüssel werden niemals über das Netz übertragen: die Verbindung zu dem Vermittler wird über ferne SSH-Verbindungen weitergeleitet und das Ergebnis wird dem Anfragenden zurückgeliefert, wodurch der Benutzer überall im Netzwerk auf sichere Art Zugriff auf seine Identitäten hat.

Bei Empfang eines SIGUSR1 wird ssh-agent alle von ihm geladene Schlüssel löschen.

UMGEBUNGSVARIABLEN

SSH_AGENT_PID
    Wenn ssh-agent startet, speichert es den Namen der Prozesskennung (PID) des Vermittlers in dieser Variablen.

SSH_AUTH_SOCK
    Wenn ssh-agent startet, erstellt es einen UNIX-domain -Socket und speichert seinen Pfadnamen in dieser Variablen. Darauf kann nur der aktuelle Benutzer zugreifen, aber dies kann leicht von root oder einer anderen Instanz des gleichen Benutzers missbraucht werden.

Unter Debian ist ssh-agent mit gesetztem set-group-id-Bit installiert, um zu verhindern, dass ptrace(2) -Angriffe privates Schlüsselmaterial abfragen. Dies hat den Nebeneffekt, das der Laufzeit-Linker bestimmte Umgebungsvariablen entfernt, die Auswirkungen auf die Sicherheit für set-id-Programme haben könnten, einschließlich LD_PRELOAD, LD_LIBRARY_PATH und TMPDIR. Falls Sie eine dieser Umgebungsvariablen setzen müssen, müssen Sie das in dem durch Ssh-agent ausgeführten Programm machen.

DATEIEN

$HOME/.ssh/agent/s.*
    Die UNIX-domain -Sockets, die die Verbindung zum Authentifizierungsvermittler enthalten. Diese Sockets sollten nur durch den Eigentümer lesbar sein. Die Sockets sollten automatisch entfernt werden, wenn sich der Vermittler beendet.

SIEHE AUCH
ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), sshd(8)

AUTOREN
-nosplit OpenSSH ist eine Ableitung der ursprünglichen und freien SSH-1.2.12-Veröffentlichung durch Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt und Dug Song entfernten viele Fehler, fügten neue Funktionalitäten wieder hinzu und erstellten OpenSSH. Markus Friedl steuerte die Unterstützung für SSH-Protokollversion 1.5 und 2.0 bei.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3: https://www.gnu.org/licenses/gpl-3.0.html oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.