summaryrefslogtreecommitdiff
path: root/debian/systemd
diff options
context:
space:
mode:
Diffstat (limited to 'debian/systemd')
-rw-r--r--debian/systemd/ssh-agent.override1
-rw-r--r--debian/systemd/ssh-agent.service8
-rwxr-xr-xdebian/systemd/ssh-session-cleanup11
-rw-r--r--debian/systemd/ssh-session-cleanup.service13
-rw-r--r--debian/systemd/ssh.service21
-rw-r--r--debian/systemd/ssh.socket12
-rw-r--r--debian/systemd/ssh@.service10
7 files changed, 76 insertions, 0 deletions
diff --git a/debian/systemd/ssh-agent.override b/debian/systemd/ssh-agent.override
new file mode 100644
index 000000000..2905494b6
--- /dev/null
+++ b/debian/systemd/ssh-agent.override
@@ -0,0 +1 @@
manual
diff --git a/debian/systemd/ssh-agent.service b/debian/systemd/ssh-agent.service
new file mode 100644
index 000000000..2297f8f75
--- /dev/null
+++ b/debian/systemd/ssh-agent.service
@@ -0,0 +1,8 @@
1[Unit]
2Description=OpenSSH Agent
3Before=graphical-session-pre.target
4ConditionPathExists=/etc/X11/Xsession.options
5
6[Service]
7ExecStart=/usr/lib/openssh/agent-launch start
8ExecStopPost=/usr/lib/openssh/agent-launch stop
diff --git a/debian/systemd/ssh-session-cleanup b/debian/systemd/ssh-session-cleanup
new file mode 100755
index 000000000..f283cc967
--- /dev/null
+++ b/debian/systemd/ssh-session-cleanup
@@ -0,0 +1,11 @@
1#! /bin/sh
2
3ssh_session_pattern='sshd: \S.*@pts/[0-9]+'
4
5IFS="$IFS@"
6pgrep -a -f "$ssh_session_pattern" | while read pid daemon user pty; do
7 echo "Found ${daemon%:} session $pid on $pty; sending SIGTERM"
8 kill "$pid" || true
9done
10
11exit 0
diff --git a/debian/systemd/ssh-session-cleanup.service b/debian/systemd/ssh-session-cleanup.service
new file mode 100644
index 000000000..b86727227
--- /dev/null
+++ b/debian/systemd/ssh-session-cleanup.service
@@ -0,0 +1,13 @@
1[Unit]
2Description=OpenBSD Secure Shell session cleanup
3Wants=network.target
4After=network.target
5
6[Service]
7ExecStart=/bin/true
8ExecStop=/usr/lib/openssh/ssh-session-cleanup
9RemainAfterExit=yes
10Type=oneshot
11
12[Install]
13WantedBy=multi-user.target
diff --git a/debian/systemd/ssh.service b/debian/systemd/ssh.service
new file mode 100644
index 000000000..3b10e7957
--- /dev/null
+++ b/debian/systemd/ssh.service
@@ -0,0 +1,21 @@
1[Unit]
2Description=OpenBSD Secure Shell server
3After=network.target auditd.service
4ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
5
6[Service]
7EnvironmentFile=-/etc/default/ssh
8ExecStartPre=/usr/sbin/sshd -t
9ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
10ExecReload=/usr/sbin/sshd -t
11ExecReload=/bin/kill -HUP $MAINPID
12KillMode=process
13Restart=on-failure
14RestartPreventExitStatus=255
15Type=notify
16RuntimeDirectory=sshd
17RuntimeDirectoryMode=0755
18
19[Install]
20WantedBy=multi-user.target
21Alias=sshd.service
diff --git a/debian/systemd/ssh.socket b/debian/systemd/ssh.socket
new file mode 100644
index 000000000..5a766dcab
--- /dev/null
+++ b/debian/systemd/ssh.socket
@@ -0,0 +1,12 @@
1[Unit]
2Description=OpenBSD Secure Shell server socket
3Before=ssh.service
4Conflicts=ssh.service
5ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
6
7[Socket]
8ListenStream=22
9Accept=yes
10
11[Install]
12WantedBy=sockets.target
diff --git a/debian/systemd/ssh@.service b/debian/systemd/ssh@.service
new file mode 100644
index 000000000..65fddf2a5
--- /dev/null
+++ b/debian/systemd/ssh@.service
@@ -0,0 +1,10 @@
1[Unit]
2Description=OpenBSD Secure Shell server per-connection daemon
3After=auditd.service
4
5[Service]
6EnvironmentFile=-/etc/default/ssh
7ExecStart=-/usr/sbin/sshd -i $SSHD_OPTS
8StandardInput=socket
9RuntimeDirectory=sshd
10RuntimeDirectoryMode=0755