NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bin/60578: pam_ssh fails to use ssh-agent
>Number: 60578
>Category: bin
>Synopsis: pam_ssh fails to use ssh-agent
>Confidential: no
>Severity: critical
>Priority: low
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Aug 13 13:05:00 +0000 2026
>Originator: Michael van Elst
>Release: NetBSD 11.99.7
>Organization:
>Environment:
System: NetBSD arnold 11.99.7 NetBSD 11.99.7 (EGGHED64) #6: Wed Aug 5 06:50:55 UTC 2026 mlelstv@slowpoke:/home/netbsd-current/obj.evbarm64-el/scratch/netbsd-current/src/sys/arch/evbarm/compile/EGGHED64 evbarm
Architecture: any
Machine: any
>Description:
The pam_ssh module can be used to automatically launch an ssh-agent
and enable ssh keys. This fails for openssh 10.x.
In netbsd-10 (openssh 9.6) the output of 'ssh-agent -s' looks like:
SSH_AUTH_SOCK=/tmp/ssh-xxxxxxxxxxxx/agent.nnnn; export SSH_AUTH_SOCK;
SSH_AGENT_PID=nnnnn; export SSH_AGENT_PID;
In netbsd-11 and HEAD (openssh 10.3) the output looks like:
export SSH_AUTH_SOCK=/home/mlelstv/.ssh/agent/s.xxxxxxxxxx.agent.xxxxxxxxxx;
export SSH_AGENT_PID=nnnn;
The pam_ssh module recognizes only lines that start with 'SSH_' to pass them
into the environment.
static void
pam_ssh_process_agent_output(pam_handle_t *pamh, FILE *f)
...
while ((line = fgetln(f, &len)) != NULL) {
if (len < 4 || strncmp(line, "SSH_", 4) != 0)
continue;
The agent isn't terminated either when the PAM session closes as its
PID is learned again from the environment.
>How-To-Repeat:
Uncomment pam_ssh in /etc/pam.d/display_manager.
Watch ssh-agent running, but no environment is set to talk to it.
See also:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285043
>Fix:
Improve the parser in lib/libpam/modules/pam_ssh/pam_ssh.c
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index