ssh-agent, systemd und $SSH_AUTH_SOCK

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

ssh-agent, systemd und $SSH_AUTH_SOCK

Beitrag von smutbert » 18.03.2021 21:14:57

Hi,

ich frage mich gerade wie das gedacht ist:

systemd startet ssh-agent als user-unit, was ich durchaus nett finde, aber ich finde keine Möglichkeit SSH_AUTH_SOCK entsprechend zu setzen. Natürlich könnte ich das manuell machen, der Wert/Pfad scheint immer »/run/user/1000/openssh_agent« zu bleiben, aber wenn systemd schon das Starten übernimmt, sollte es doch auch irgendeine Möglichkeit bieten SSH_AUTH_SOCK richtig zu setzen?


Natürlich habe ich selbst schon recherchiert und im Log steht

Code: Alles auswählen

Mär 18 10:39:21 pc agent-launch[565]: dbus-update-activation-environment: setting SSH_AUTH_SOCK=/run/user/1000/openssh_agent
Mär 18 10:39:21 pc agent-launch[565]: dbus-update-activation-environment: setting SSH_AGENT_LAUNCHER=openssh
also habe ich mir dieses dbus-update-activation-environment angesehen, aber zumindest gibt das vor nichts über den ssh-agent zu wissen:

Code: Alles auswählen

$ dbus-update-activation-environment --all --verbose
Ausgabe: NoPaste-Eintrag41316
(da steht alles möglich drin, aber nichts vom ssh-agent)

abgesehen von ssh-agent auf andere Art und Weise zu starten oder SSH_AUTH_SOCK selbst richtig zu setzen, fällt mir jetzt nichts mehr ein.


lg smutbert

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: ssh-agent, systemd und $SSH_AUTH_SOCK

Beitrag von JTH » 19.03.2021 11:45:40

Wenn ich dem, was du vorhast, richtig folge, wirst du da anscheinend nicht weit kommen. Der Wert von SSH_AUTH_SOCK ist in dem agent-launch-Skript, das von der systemd-User-Unit benutzt wird, recht fest verdrahtet:

Code: Alles auswählen

        S="$XDG_RUNTIME_DIR/openssh_agent"
        dbus-update-activation-environment --verbose --systemd SSH_AUTH_SOCK=$S SSH_AGENT_LAUNCHER=openssh
        exec ssh-agent -D -a $S

Man könnte höchstens XDG_RUNTIME_DIR anders setzen:

Code: Alles auswählen

$ cat ~/.config/systemd/user/ssh-agent.service.d/override-xdg-runtime-dir.conf
[Service]
Environment=XDG_RUNTIME_DIR=/somewhere/else
Es würde aber immer noch /somewhere/else/openssh_agent bei rauskommen.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: ssh-agent, systemd und $SSH_AUTH_SOCK

Beitrag von smutbert » 19.03.2021 17:01:22

Eigentlich wollte ich nur den von systemd gestarteten ssh-agent nutzen ohne selbst den Wert von SSH_AUTH_SOCK „fest verdrahten“ zu müssen und dachte ich könnte die Variable vielleicht mit Hilfe von dbus-update-activation-environment setzen.

Antworten