Update for systemd 204+

master
Evan Purkhiser 12 years ago
parent d3312b5b06
commit 55bfc353d3

@ -3,11 +3,8 @@
This script has a rather specific use case. If you fit the following demographic This script has a rather specific use case. If you fit the following demographic
then this script might just be for you! then this script might just be for you!
* You use systemd as a user session manager (either * You use systemd
[this](https://github.com/sofar/user-session-units), or [this](https://github.com/EvanPurkhiser/systemd-user-sessions)) * You login at the linux VT using a getty
* You're systemd --user instance default target doesn't start a graphical
environment, i.e. you still need to login to activate your graphical
session
* You have a `systemd --user` service called `ssh-agent.service` that starts * You have a `systemd --user` service called `ssh-agent.service` that starts
your ssh agent. your ssh agent.
* You have to type your password a second time after logging in in order to * You have to type your password a second time after logging in in order to
@ -18,17 +15,15 @@ SSH key will be decrypted and added to your ssh-agent for you.
## Usage ## Usage
There are a few pre-requisites to this script: There is one pre-requisite for this script:
1. Your systemd --user session needs to be running during login time. This won't Your systemd --user instance needs to know about the `SSH_AUTH_SOCK`. If you're
be a problem if you use one of the user-session services mentioned above. using my systemd-user-sessions package mentioned above then you will want to
2. Your systemd --user instance needs to know about the `SSH_AUTH_SOCK`. If add this to your `~/.config/bash/environment` file as something like
you're using my systemd-user-sessions package mentioned above then you will `SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent`.
want to add this to your `~/.config/bash/environment` file as something like
`SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent`.
To enable the script you will want to add this to your pam configuration To enable the script you will want to add this to your pam configuration
(probably `/etc/pam.d/system-login` or `/etc/pam.d/login` (probably `/etc/pam.d/system-login` or `/etc/pam.d/login`)
auth optional pam_exec.so expose_authtok /path/to/the/systemd-user-pam-ssh auth optional pam_exec.so expose_authtok /path/to/the/systemd-user-pam-ssh

@ -9,8 +9,8 @@
# Handle inital checks as root # Handle inital checks as root
if [ $(id -u) = 0 ] if [ $(id -u) = 0 ]
then then
# Don't execute if the user-session isn't running # Don't execute if the systemd --user instance isn't running
systemctl -q is-active user-session@${PAM_USER} || exit 0 systemctl -q is-active user@$(id -u ${PAM_USER}) || exit 0
# Re-execute this script as the user to add their key (while piping STDIN) # Re-execute this script as the user to add their key (while piping STDIN)
cat | exec su ${PAM_USER} -c $(realpath ${BASH_SOURCE[0]}) cat | exec su ${PAM_USER} -c $(realpath ${BASH_SOURCE[0]})

Loading…
Cancel
Save