From c5d9f7055288a56ebe68c3ab022f40c8932b215f Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 18 Jun 2011 16:14:51 +0200 Subject: [PATCH] dropbear-systemd: config files for socket-based activation of dropbear Signed-off-by: Koen Kooi --- .../dropbear/dropbear-systemd/dropbear.socket | 10 +++++ .../dropbear-systemd/dropbear@.service | 9 +++++ .../dropbear-systemd/dropbearkey.service | 10 +++++ .../dropbear/dropbear-systemd_v1.bb | 40 +++++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear.socket create mode 100644 meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service create mode 100644 meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service create mode 100644 meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb diff --git a/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear.socket b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear.socket new file mode 100644 index 0000000000..e5c61b755e --- /dev/null +++ b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear.socket @@ -0,0 +1,10 @@ +[Unit] +Conflicts=dropbear.service + +[Socket] +ListenStream=22 +Accept=yes + +[Install] +WantedBy=sockets.target +Also=dropbearkey.service diff --git a/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service new file mode 100644 index 0000000000..4fba3f05c8 --- /dev/null +++ b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service @@ -0,0 +1,9 @@ +[Unit] +Description=SSH Per-Connection Server +Requires=dropbearkey.service +After=syslog.target dropbearkey.service + +[Service] +ExecStart=-/usr/sbin/dropbear -i -r /etc/dropbear/dropbear_rsa_host_key -p 22 +ExecReload=/bin/kill -HUP $MAINPID +StandardInput=socket diff --git a/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service new file mode 100644 index 0000000000..7f03000ebc --- /dev/null +++ b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service @@ -0,0 +1,10 @@ +[Unit] +Description=SSH Key Generation +ConditionPathExists=|!/etc/dropbear/dropbear_rsa_host_key + +[Service] +ExecStart=/usr/sbin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb b/meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb new file mode 100644 index 0000000000..b46c0e2a4a --- /dev/null +++ b/meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "Socket based activation for dropbear ssh server" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58" + +inherit allarch + +SRC_URI = "file://dropbearkey.service \ + file://dropbear@.service \ + file://dropbear.socket \ + " + +do_configure() { + : +} + +do_compile() { + : +} + +do_install() { + install -d ${D}${base_libdir}/systemd/system + install -m 0644 ${WORKDIR}/dropbear*.* ${D}${base_libdir}/systemd/system/ +} + +pkg_postinst_${PN} () { +if test "x$D" != "x"; then + exit 1 +fi +systemctl enable dropbear.socket +ln -sf /dev/null ${base_libdir}/systemd/system/dropbear.service +} + +pkg_postrm_${PN} () { +systemctl disable dropbear.socket +rm -f ${base_libdir}/systemd/system/dropbear.service +} + +RDEPENDS_${PN} = "systemd dropbear" +FILES_${PN} = "${base_libdir}/systemd/system" +