diff options
4 files changed, 47 insertions, 2 deletions
| diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket new file mode 100644 index 0000000000..d19ab2ac43 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket @@ -0,0 +1,11 @@ +[Unit] +Conflicts=sshd.service + +[Socket] +ExecStartPre=@BASE_BINDIR@/mkdir -p /var/run/sshd +ListenStream=22 +Accept=yes + +[Install] +WantedBy=sockets.target +Also=sshdgenkeys.service diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service new file mode 100644 index 0000000000..64e009ff00 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service @@ -0,0 +1,9 @@ +[Unit] +Description=OpenSSH Per-Connection Daemon +After=sshdgenkeys.service + +[Service] +ExecStart=-@SBINDIR@/sshd -i +ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID +StandardInput=socket +StandardError=syslog diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service new file mode 100644 index 0000000000..2fd8a9aaf2 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service @@ -0,0 +1,10 @@ +[Unit] +Description=SSH Key Generation + +[Service] +ExecStart=@BINDIR@/ssh-keygen -A +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/meta/recipes-connectivity/openssh/openssh_6.2p2.bb b/meta/recipes-connectivity/openssh/openssh_6.2p2.bb index c76f9ac7ee..3a7f50d5fb 100644 --- a/meta/recipes-connectivity/openssh/openssh_6.2p2.bb +++ b/meta/recipes-connectivity/openssh/openssh_6.2p2.bb @@ -26,14 +26,17 @@ SRC_URI = "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.             file://init \             file://openssh-CVE-2011-4327.patch \             file://mac.patch \ -           ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" +           ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ +           file://sshd.socket \ +           file://sshd@.service \ +           file://sshdgenkeys.service "  PAM_SRC_URI = "file://sshd"  SRC_URI[md5sum] = "be46174dcbb77ebb4ea88ef140685de1"  SRC_URI[sha256sum] = "7f29b9d2ad672ae0f9e1dcbff871fc5c2e60a194e90c766432e32161b842313b" -inherit useradd update-rc.d update-alternatives +inherit useradd update-rc.d update-alternatives systemd  USERADD_PACKAGES = "${PN}-sshd"  USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd" @@ -41,6 +44,9 @@ INITSCRIPT_PACKAGES = "${PN}-sshd"  INITSCRIPT_NAME_${PN}-sshd = "sshd"  INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9" +SYSTEMD_PACKAGES = "${PN}-sshd" +SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket sshd@.service sshdgenkeys.service" +  PACKAGECONFIG ??= "tcp-wrappers"  PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,,tcp-wrappers" @@ -93,6 +99,15 @@ do_install_append () {  	echo "HostKey /var/run/ssh/ssh_host_rsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly  	echo "HostKey /var/run/ssh/ssh_host_dsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly  	echo "HostKey /var/run/ssh/ssh_host_ecdsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + +	install -d ${D}${systemd_unitdir}/system +	install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system +	install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system +	install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system +	sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ +		-e 's,@SBINDIR@,${sbindir},g' \ +		-e 's,@BINDIR@,${bindir},g' \ +		${D}${systemd_unitdir}/system/sshd.socket ${D}${systemd_unitdir}/system/*.service  }  ALLOW_EMPTY_${PN} = "1" | 
