Package: src:openssh Hello, Starting with Upstart 1.7, users can choose to use it in "user session" mode. When doing so, the regular Xsession script that usually spawns ssh-agent doesn't work and so an equivalent upstart job needs to be installed. Attached is a debdiff adding such a job to the openssh-client package. This job is a no-op on non-upstart systems or on upstart systems that don't use user sessions. For those using user sessions, this job will do the same work as 90x11-common_ssh-agent including checking Xsession.options if present. I'm currently using that job on a standard Ubuntu 13.04 system and I have done a testbuild with the attached debdiff. Thanks -- Stéphane Graber Ubuntu developer http://www.ubuntu.com
diff -Nru openssh-6.1p1/debian/changelog openssh-6.1p1/debian/changelog --- openssh-6.1p1/debian/changelog 2013-02-08 16:07:32.000000000 -0500 +++ openssh-6.1p1/debian/changelog 2013-03-25 11:30:18.000000000 -0400 @@ -1,3 +1,11 @@ +openssh (1:6.1p1-4) UNRELEASED; urgency=low + + * Add ssh-agent upstart user job. This implements something similar to the + 90x11-common_ssh-agent Xsession script. That's, start ssh-agent and set + the appropriate environment variables. + + -- Stéphane Graber <stgraber@ubuntu.com> Mon, 25 Mar 2013 11:29:10 -0400 + openssh (1:6.1p1-3) experimental; urgency=low * Give ssh and ssh-krb5 versioned dependencies on openssh-client and diff -Nru openssh-6.1p1/debian/rules openssh-6.1p1/debian/rules --- openssh-6.1p1/debian/rules 2012-11-26 11:38:45.000000000 -0500 +++ openssh-6.1p1/debian/rules 2013-03-25 11:29:02.000000000 -0400 @@ -187,6 +187,9 @@ install -p -m 644 debian/openssh-client.apport debian/openssh-client/usr/share/apport/package-hooks/openssh-client.py install -p -m 644 debian/openssh-server.apport debian/openssh-server/usr/share/apport/package-hooks/openssh-server.py + # Upstart user job (only used under user sessions) + install -m 644 -D debian/ssh-agent.user-session.upstart debian/openssh-client/usr/share/upstart/sessions/ssh-agent.conf + override_dh_installdocs: dh_installdocs -Nopenssh-server -Nssh dh_installdocs -popenssh-server -pssh --link-doc=openssh-client diff -Nru openssh-6.1p1/debian/ssh-agent.user-session.upstart openssh-6.1p1/debian/ssh-agent.user-session.upstart --- openssh-6.1p1/debian/ssh-agent.user-session.upstart 1969-12-31 19:00:00.000000000 -0500 +++ openssh-6.1p1/debian/ssh-agent.user-session.upstart 2013-03-25 11:10:22.000000000 -0400 @@ -0,0 +1,20 @@ +description "SSH Agent" +author "Stéphane Graber <stgraber@ubuntu.com>" + +start on starting xsession-init + +pre-start script + if [ -f /etc/X11/Xsession.options ]; then + grep -q "^use-ssh-agent$" /etc/X11/Xsession.options || { stop; exit 0; } + fi + + eval "$(ssh-agent)" >/dev/null + initctl set-env --global SSH_AUTH_SOCK=$SSH_AUTH_SOCK + initctl set-env --global SSH_AGENT_PID=$SSH_AGENT_PID +end script + +post-stop script + kill $SSH_AGENT_PID 2>/dev/null || true + initctl unset-env --global SSH_AUTH_SOCK + initctl unset-env --global SSH_AGENT_PID +end script
Attachment:
signature.asc
Description: OpenPGP digital signature