diff options
-rw-r--r-- | openssh.morph | 13 | ||||
-rw-r--r-- | opensshd.service.in | 11 | ||||
-rwxr-xr-x | sshd-keygen.in | 24 |
3 files changed, 45 insertions, 3 deletions
diff --git a/openssh.morph b/openssh.morph index 90c10b08..f90655d6 100644 --- a/openssh.morph +++ b/openssh.morph @@ -3,14 +3,21 @@ "kind": "chunk", "configure-commands": [ "autoreconf -if", - "OPENSSL_SEEDS_ITSELF=yes ./configure --prefix=/usr --sysconfdir=/etc/ssh --datadir=/usr/share/sshd --libexecdir=/usr/lib/openssh --with-privsep-path=/var/lib/sshd" + "OPENSSL_SEEDS_ITSELF=yes ./configure --prefix=\"$PREFIX\" --sysconfdir=/etc/ssh --datadir=\"$PREFIX/share/sshd\" --libexecdir=\"$PREFIX/lib/openssh\" --with-privsep-path=/var/lib/sshd" ], "build-commands": [ - "make" + "make", + "sed -e \"s|@prefix@|$PREFIX|g\" -e \"s|@STARTUP_SCRIPT_SHELL@|$PREFIX/bin/sh|g\" -e 's|@sysconfdir@|/etc/ssh|g' -e 's|@COMMENT_OUT_ECC@||g' sshd-keygen.in >sshd-keygen", + "sed -e \"s|@prefix@|$PREFIX|g\" opensshd.service.in >opensshd.service" ], "install-commands": [ "make DESTDIR=\"$DESTDIR\" install", "mkdir -p \"$DESTDIR\"/etc/init.d", - "install -m 744 opensshd.init \"$DESTDIR\"/etc/init.d/opensshd" + "install -m 744 opensshd.init \"$DESTDIR\"/etc/init.d/opensshd", + "mkdir -p \"$DESTDIR/$PREFIX/sbin\"", + "install -m 744 sshd-keygen \"$DESTDIR/$PREFIX/sbin/sshd-keygen\"", + "mkdir -p \"$DESTDIR/lib/systemd/system/multi-user.target.wants\"", + "install -m 644 opensshd.service \"$DESTDIR/lib/systemd/system/opensshd.service\"", + "ln -s ../opensshd.service \"$DESTDIR/lib/systemd/system/multi-user.target.wants/opensshd.service\"" ] } diff --git a/opensshd.service.in b/opensshd.service.in new file mode 100644 index 00000000..2b369bb1 --- /dev/null +++ b/opensshd.service.in @@ -0,0 +1,11 @@ +[Unit] +Description=OpenSSH server daemon +After=network.target + +[Service] +ExecStartPre=@prefix@/sbin/sshd-keygen +ExecStart=@prefix@/sbin/sshd -D +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/sshd-keygen.in b/sshd-keygen.in new file mode 100755 index 00000000..cbcbc925 --- /dev/null +++ b/sshd-keygen.in @@ -0,0 +1,24 @@ +#!@STARTUP_SCRIPT_SHELL@ + +prefix=@prefix@ +sysconfdir=@sysconfdir@ + +SSH_KEYGEN=$prefix/bin/ssh-keygen +HOST_KEY_RSA1=$sysconfdir/ssh_host_key +HOST_KEY_DSA=$sysconfdir/ssh_host_dsa_key +HOST_KEY_RSA=$sysconfdir/ssh_host_rsa_key +@COMMENT_OUT_ECC@HOST_KEY_ECDSA=$sysconfdir/ssh_host_ecdsa_key + + +if [ ! -f $HOST_KEY_RSA1 ]; then + ${SSH_KEYGEN} -t rsa1 -f ${HOST_KEY_RSA1} -N "" +fi +if [ ! -f $HOST_KEY_DSA ]; then + ${SSH_KEYGEN} -t dsa -f ${HOST_KEY_DSA} -N "" +fi +if [ ! -f $HOST_KEY_RSA ]; then + ${SSH_KEYGEN} -t rsa -f ${HOST_KEY_RSA} -N "" +fi +@COMMENT_OUT_ECC@if [ ! -f $HOST_KEY_ECDSA ]; then +@COMMENT_OUT_ECC@ ${SSH_KEYGEN} -t ecdsa -f ${HOST_KEY_ECDSA} -N "" +@COMMENT_OUT_ECC@fi |