Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

systemd + ssh-agent

25 views
Skip to first unread message

Friedemann Stoyan

unread,
Aug 4, 2018, 12:23:46 AM8/4/18
to
Moin!

Ich habe bei mir den ssh-agent von der Aktivierung per Shell auf Systemd
umgestellt. Und zwar so:

Eigene (globale) systemd Unit: "/etc/systemd/user/ssh-agent.service":

[Unit]
Description=OpenSSH Agent
ConditionFileIsExecutable=/usr/bin/ssh-agent

[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
SuccessExitStatus=2
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK

[Install]
WantedBy=default.target

Global aktivieren und starten:

sudo systemctl --user --global enable ssh-agent.service
systemctl --user start ssh-agent.service

$ systemctl --user status ssh-agent.service
● ssh-agent.service - OpenSSH Agent
Loaded: loaded (/etc/systemd/user/ssh-agent.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2018-08-03 18:46:02 CEST; 11h ago
Main PID: 31543 (ssh-agent)
CGroup: /user.slice/user-1000.slice/us...@1000.service/ssh-agent.service
└─31543 /usr/bin/ssh-agent -D -a /run/user/1000/ssh-agent.socket

Aug 03 18:46:02 defiant systemd[2846]: Started OpenSSH Agent.
Aug 03 18:46:02 defiant ssh-agent[31543]: SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket; export SSH_AUTH_SOCK;
Aug 03 18:46:02 defiant ssh-agent[31543]: echo Agent pid 31543;

Die SSH_AUTH_SOCK Variable setzte ich der Einfachheit halber per .bashrc:

export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/ssh-agent.socket"

PAM ist für login (/etc/pam.d/login) bei Debian völlig kaputt und
unbrauchbar, ein Trauerspiel. Aber das ist ein anderes Thema.

Kaum zu glauben: Alles funktioniert! Der Agent wird gestartet, Environmet
ist da. Alles super.

Aber dann. X wird per startx gestartet. Wie von Geisterhand wird ein
weiterer ssh-agent gestartet:

$ pgrep -a ssh-agent
31543 /usr/bin/ssh-agent -D -a /run/user/1000/ssh-agent.socket
32363 /usr/bin/ssh-agent -s

Keine Ahnung warum/woher. Von den Xsession.options kann das nicht
sein, das habe ich verboten:

$ grep ssh-agent /etc/X11/Xsession.options
no-use-ssh-agent

Wer startet diesen ssh-agent?? Es muss aus dieser laufenen Session sein:

$ systemd-cgls | grep -Ei "slice|scope|ssh-agent" | grep -Eiv "system|init|grep"
-.slice
├─user.slice
│ └─user-1000.slice
│ ├─session-728.scope
│ │ ├─32363 /usr/bin/ssh-agent -s
│ │ ├─ssh-agent.service
│ │ │ └─31543 /usr/bin/ssh-agent -D -a /run/user/1000/ssh-agent.socket
│ └─session-4.scope

Ich werde bald bekloppt! Wo wird dieser (32363 /usr/bin/ssh-agent -s)
ssh-agent gestartet?

mfg Friedemann

Sven Hartge

unread,
Aug 4, 2018, 5:12:20 PM8/4/18
to
Friedemann Stoyan <use...@ip6-mail.de> wrote:

> Ich werde bald bekloppt! Wo wird dieser (32363 /usr/bin/ssh-agent -s)
> ssh-agent gestartet?

https://codesearch.debian.net/search?q=ssh-agent+-s

lxsession?



--
Sigmentation fault. Core dumped.

Friedemann Stoyan

unread,
Aug 5, 2018, 1:06:12 AM8/5/18
to
Sven Hartge wrote:

> https://codesearch.debian.net/search?q=ssh-agent+-s

Codesearch kannte ich noch nicht. Muss ich mir mal merken.

Das war es alles nicht. Ich habe mit strace gekuckt, wer den ssh-agent aufruft:

23875 execve("/usr/bin/xfce4-session", ["xfce4-session"], [/* 46 vars */]) = 0

23875 <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 23891
23875 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fb89125bd50) = 23893
23893 open("/proc/self/fd", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 13
23893 open("/dev/null", O_RDONLY) = 13
23893 execve("/usr/bin/ssh-agent", ["/usr/bin/ssh-agent", "-s"], [/* 46 vars */]) = 0


Es muss also was mit xfce4-session zu tun haben. Google führte zu:

https://docs.xfce.org/xfce/xfce4-session/advanced

"By default xfce4-session tries to start the gpg- or ssh-agent."

Abstellen mit:

xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false

Also echt mal! Das ist ja wie bei Windows! Mit dem Registrierungsediter
rumfummeln, damit irgendetwas aufhört, was man anders will. Und was mich
das für Zeit gekostet hat!


mfg Friedemann
0 new messages