On Thu 28 Jul 2022 at 10:35:07 (-0400), Greg Wooledge wrote: > On Thu, Jul 28, 2022 at 10:34:50AM -0300, Chris Mitchell wrote: > > From the output of systemd-cgls I see that the rogue ssh-agent process > > is part of the .scope CGroup corresponding to my X login session. > > > > # systemctl status session-8.scope > > ● session-8.scope - Session 8 of User chris > > Loaded: loaded (/run/systemd/transient/session-8.scope; transient) > > Transient: yes > > Active: active (running) since Thu 2022-07-28 08:59:48 ADT; 25min > > ago Tasks: 254 > > Memory: 957.6M > > CPU: 2min 5.903s > > CGroup: /user.slice/user-1000.slice/session-8.scope > > ├─ 7588 lightdm --session-child 14 23 > > ├─ 7625 xfce4-session > > ├─ 7687 /usr/bin/ssh-agent -s > > etc. > > Looks like it's coming from login stuff, somehow. > > Curious, I looked at my own session. > > unicorn:~$ ps -ef | grep ssh-agent > greg 956 912 0 Jul09 ? 00:00:04 /usr/bin/ssh-agent > /home/greg/.xsession > greg 968 1 0 Jul09 ? 00:00:00 ssh-agent -s > greg 1510760 984 0 10:24 pts/2 00:00:00 grep ssh-agent > > unicorn:~$ systemctl status session-1.scope > ● session-1.scope - Session 1 of user greg > Loaded: loaded (/run/systemd/transient/session-1.scope; transient) > Transient: yes > Active: active (running) since Sat 2022-07-09 08:23:23 EDT; 2 weeks 5 > days> > Tasks: 1176 > Memory: 9.7G > CPU: 1w 5d 8h 51min 25.285s > CGroup: /user.slice/user-1000.slice/session-1.scope > ├─ 697 /bin/login -p -- > ├─ 856 -bash > ├─ 871 /bin/sh /usr/bin/startx > ├─ 893 xinit /etc/X11/xinit/xinitrc -- > /etc/X11/xinit/xserverrc> > ├─ 894 /usr/lib/xorg/Xorg -nolisten tcp :0 vt1 -keeptty -auth > /> > ├─ 912 /bin/bash /home/greg/.xsession > ├─ 956 /usr/bin/ssh-agent /home/greg/.xsession > ├─ 968 ssh-agent -s > ├─ 971 rxvt -font 7x13 -geometry 80x24+0+116 > [...]
I did much the same … > My .xsession file contains only this line concerning ssh-agent: > > hash ssh-agent 2>/dev/null && eval "$(ssh-agent -s)" … but I don't do that. So my ssh-agent is still "properly" parented, rather than an adoptee of 1. > So... in my case... "ssh-agent -s" (PID 968) is the one I requested. What > is the *other* one, PID 956? It's a child of 912 (shown earlier), so > let's trace that back: > > unicorn:~$ ps -fp 912 > UID PID PPID C STIME TTY TIME CMD > greg 912 893 0 Jul09 tty1 00:00:00 /bin/bash > /home/greg/.xsessi > unicorn:~$ ps -fp 893 > UID PID PPID C STIME TTY TIME CMD > greg 893 871 0 Jul09 tty1 00:00:00 xinit > /etc/X11/xinit/xinitrc > > /etc/X11/xinit/xinitrc is a shell script that contains only one non-comment > line: > > . /etc/X11/Xsession > > Looking for related stuff: > > unicorn:~$ grep -r ssh-agent /etc/X11/Xsession* > /etc/X11/Xsession.d/90x11-common_ssh-agent:# $Id: 90x11-common_ssh-agent 305 > 2005-07-03 18:51:43Z dnusinow $ > /etc/X11/Xsession.d/90x11-common_ssh-agent:SSHAGENT=/usr/bin/ssh-agent > /etc/X11/Xsession.d/90x11-common_ssh-agent:if has_option use-ssh-agent; then > /etc/X11/Xsession.d/90x11-common_ssh-agent: if [ -f /usr/bin/ssh-add1 ] && > cmp -s $SSHAGENT /usr/bin/ssh-agent2; then > /etc/X11/Xsession.d/90x11-common_ssh-agent: # use ssh-agent2's > ssh-agent1 compatibility mode > /etc/X11/Xsession.options:use-ssh-agent > > So, I suppose Debian is starting this ssh-agent via its Xsession even > though I have my own .xsession file which is starting my own instance of > ssh-agent. > > I guess you've already disabled that one...? > > Anyway, your login is completely different from mine (you're using lightdm, > while I'm using a console login and startx), so you'll have to pursue your > own investigation from here. > > Given the order of the processes shown in your session-8, it looks like > it might be an XFCE thing. Maybe start there? I can't help you with > that, though. I assume that some process above ssh-agent has died, unintentionally or otherwise. > > Any ideas where I might look next? Anyone know if it's possible to ask > > systemd what process "externally created" a process in a .scope? I'm not sure what you mean by this, unless it's the (wrong) idea that systemd "injected" the ssh-agent into your scope, evidenced by its parent being PID 1. My scope is clearly generated merely by logging in. Everything in it is mine, all mine … … Control group /: -.slice ├─user.slice │ └─user-1000.slice │ ├─user@1000.service │ │ ├─app.slice │ │ │ ├─at-spi-dbus-bus.service │ │ │ │ ├─5409 /usr/libexec/at-spi-bus-launcher │ │ │ │ ├─5414 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2… │ │ │ │ └─5419 /usr/libexec/at-spi2-registryd --use-gnome-session │ │ │ ├─pipewire.service │ │ │ │ ├─1103 /usr/bin/pipewire │ │ │ │ └─1108 /usr/bin/pipewire-media-session │ │ │ └─dbus.service │ │ │ ├─1106 /usr/bin/dbus-daemon --session --address=systemd: --nofork --n… │ │ │ └─5466 /usr/libexec/dconf-service │ │ └─init.scope │ │ ├─1088 /lib/systemd/systemd --user │ │ └─1089 (sd-pam) │ └─session-4.scope │ ├─1082 /bin/login -p -- │ ├─1105 -bash │ ├─2107 /bin/sh /usr/bin/X11/startx │ ├─2129 xinit /etc/X11/xinit/xinitrc -- /etc/X11/xinit/xserverrc :0 vt1 -k… │ ├─2130 /usr/lib/xorg/Xorg -nolisten tcp :0 vt1 -keeptty -auth /tmp/server… │ ├─2174 /bin/bash /home/auser/.xsession │ ├─2218 /usr/bin/ssh-agent /bin/bash /home/auser/.xsession │ ├─2228 /usr/bin/fvwm │ ├─2237 /usr/lib/fvwm/2.6.8/FvwmPager 7 4 none 0 8 │ ├─2238 /usr/lib/fvwm/2.6.8/FvwmButtons 9 4 none 0 8 MyButtons │ ├─2239 /usr/lib/fvwm/2.6.8/FvwmEvent 11 4 none 0 8 MyEvent │ ├─2250 xterm -geometry 110x38+0+0 -xrm *Page: 4 3 │ ├─2252 bash │ ├─2266 xterm -geometry 110x38+0+0 -xrm *Page: 3 3 │ ├─2293 bash [ … ] │ ├─5671 systemd-cgls --no-pager │ └─5672 less ├─init.scope │ └─1 /sbin/init └─system.slice ├─xfstt.service │ └─608 /usr/bin/xfstt --notcp [ … ] and the rest of the system services. All the parent/child relationships are as you would expect, except that each xterm was started by a deceased instance of xtoolwait (for correct placement) and so are all adoptees of PID 1. > > Also, in the absence of more promising leads, I followed Tomas' advice > > and inserted "echo" statements at every decision point in > > 90x11-common_ssh-agent, which confirmed that the initial "if > > has_option" check is returning False and none of the code in that if > > block is being run. I'm convinced that Xsession is not the culprit. I'd like to see the contents of $STARTUP before it's exec'd by /etc/X11/Xsession.d/99x11-common_start, because that's what actually does the business. Cheers, David.