From e646f1e99f114aee95631cf8c9bc0089e3c0a6dc Mon Sep 17 00:00:00 2001 From: Giancarlo Razzolini Date: Wed, 5 Aug 2015 16:45:25 -0300 Subject: [PATCH 01/14] * Corrected the reference to mkinitcpio-utils in the hook help. --- dropbear_install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dropbear_install b/dropbear_install index df8e84a..88033fc 100644 --- a/dropbear_install +++ b/dropbear_install @@ -108,7 +108,7 @@ help () cat< Date: Tue, 11 Aug 2015 16:24:00 -0300 Subject: [PATCH 02/14] * Got rid of the TMPDIR juggling by using BUILDROOT directly. --- dropbear_install | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/dropbear_install b/dropbear_install index 88033fc..40a5116 100644 --- a/dropbear_install +++ b/dropbear_install @@ -83,24 +83,16 @@ build () add_binary "killall" add_binary "dropbear" - cat /etc/dropbear/root_key > "${TMPDIR}"/authorized_keys + add_dir "/root/.ssh" + cat /etc/dropbear/root_key > "${BUILDROOT}"/root/.ssh/authorized_keys - add_dir "/.ssh" - add_file "${TMPDIR}/authorized_keys" "/.ssh/authorized_keys" add_full_dir "/etc/dropbear" add_file "/lib/libnss_files.so.2" add_dir "/var/run" - - touch "${TMPDIR}"/lastlog add_dir "/var/log" - add_file "${TMPDIR}/lastlog" "/var/log/lastlog" - - # cleanup - rm "${TMPDIR}/authorized_keys" - rm "${TMPDIR}/lastlog" + touch "${BUILDROOT}"/var/log/lastlog add_runscript - } help () From 470a472eab84237ed7ed255619f47f0d73679471 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 14 Nov 2018 19:49:16 +0100 Subject: [PATCH 03/14] removed dss key generation --- dropbear_install | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/dropbear_install b/dropbear_install index 40a5116..3180883 100644 --- a/dropbear_install +++ b/dropbear_install @@ -8,7 +8,7 @@ get_fingerprint() { display_fingerprints() { local keyfile - for keyfile in "/etc/dropbear/dropbear_rsa_host_key" "/etc/dropbear/dropbear_dss_host_key" "/etc/dropbear/dropbear_ecdsa_host_key" ; do + for keyfile in "/etc/dropbear/dropbear_rsa_host_key" "/etc/dropbear/dropbear_ecdsa_host_key" ; do if [ -s "${keyfile}" ] ; then echo "$(basename "${keyfile}") : $(get_fingerprint "${keyfile}")" fi @@ -17,7 +17,6 @@ display_fingerprints() { copy_openssh_keys() { local osshrsa="/etc/ssh/ssh_host_rsa_key" - local osshdsa="/etc/ssh/ssh_host_dsa_key" local osshecdsa="/etc/ssh/ssh_host_ecdsa_key" local dbpre="/etc/dropbear/dropbear_" @@ -29,11 +28,6 @@ copy_openssh_keys() { return_code=0 fi - if [ -s "$osshdsa" ]; then - dropbearconvert openssh dropbear $osshdsa ${dbpre}dss_host_key - return_code=0 - fi - if [ -s "$osshecdsa" ]; then dropbearconvert openssh dropbear $osshecdsa ${dbpre}ecdsa_host_key return_code=0 @@ -44,7 +38,7 @@ copy_openssh_keys() { generate_keys() { local keyfile keytype - for keytype in rsa dss ecdsa ; do + for keytype in rsa ecdsa ; do keyfile="/etc/dropbear/dropbear_${keytype}_host_key" if [ ! -s "$keyfile" ]; then echo "Generating ${keytype} host key for dropbear ..." From 688ee538ae05bb1513ac4157ecd89b08424764ea Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 11:02:06 +0300 Subject: [PATCH 04/14] Update license --- LICENSE | 1 + 1 file changed, 1 insertion(+) diff --git a/LICENSE b/LICENSE index 707f934..30768b9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,3 +1,4 @@ +Copyright (c) 2024, Marko Korhonen Copyright (c) 2015, Giancarlo Razzolini All rights reserved. From 7aa6142adb03f7163714d976eb3e3cc0244f8eec Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 11:02:17 +0300 Subject: [PATCH 05/14] Convert scripts to posix sh --- dropbear_hook | 4 ++-- dropbear_install | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dropbear_hook b/dropbear_hook index 6a9bae7..27d8e95 100644 --- a/dropbear_hook +++ b/dropbear_hook @@ -1,4 +1,4 @@ -#!/usr/bin/ash +#!/bin/sh run_hook () { @@ -14,6 +14,6 @@ run_cleanuphook () umount /dev/pts rm -R /dev/pts if [ -f /var/run/dropbear.pid ]; then - kill `cat /var/run/dropbear.pid` + kill "$(cat /var/run/dropbear.pid)" fi } diff --git a/dropbear_install b/dropbear_install index 3180883..3120cf7 100644 --- a/dropbear_install +++ b/dropbear_install @@ -1,12 +1,12 @@ -#!/bin/bash +#!/bin/sh get_fingerprint() { - local keyfile="$1" + keyfile="$1" dropbearkey -y -f "${keyfile}" | sed -n '/^Fingerprint:/ {s/Fingerprint: *//; p}' } display_fingerprints() { - local keyfile + keyfile for keyfile in "/etc/dropbear/dropbear_rsa_host_key" "/etc/dropbear/dropbear_ecdsa_host_key" ; do if [ -s "${keyfile}" ] ; then @@ -16,12 +16,12 @@ display_fingerprints() { } copy_openssh_keys() { - local osshrsa="/etc/ssh/ssh_host_rsa_key" - local osshecdsa="/etc/ssh/ssh_host_ecdsa_key" + osshrsa="/etc/ssh/ssh_host_rsa_key" + osshecdsa="/etc/ssh/ssh_host_ecdsa_key" - local dbpre="/etc/dropbear/dropbear_" + dbpre="/etc/dropbear/dropbear_" - local return_code=1 + return_code=1 if [ -s "$osshrsa" ]; then dropbearconvert openssh dropbear $osshrsa ${dbpre}rsa_host_key @@ -37,7 +37,7 @@ copy_openssh_keys() { } generate_keys() { - local keyfile keytype + keyfile keytype for keytype in rsa ecdsa ; do keyfile="/etc/dropbear/dropbear_${keytype}_host_key" if [ ! -s "$keyfile" ]; then @@ -54,16 +54,16 @@ build () # # Are we even needed? - if [ ! -r "/etc/dropbear/root_key" -o ! -s "/etc/dropbear/root_key" ]; then + if [ ! -r "/etc/dropbear/root_key" ] || [ ! -s "/etc/dropbear/root_key" ]; then echo "There is no root key in /etc/dropbear/root_key existent; exit" return 0 fi # if TMPDIR is set leave it alone otherwise set - [ -z $TMPDIR ] && TMPDIR='/tmp/dropbear_initrd_encrypt' + [ -z "$TMPDIR" ] && TMPDIR='/tmp/dropbear_initrd_encrypt' # check if TMPDIR exsists if not make it - [ -d $TMPDIR ] || mkdir -p $TMPDIR + [ -d "$TMPDIR" ] || mkdir -p "$TMPDIR" umask 0022 From 35992208150930c6a4a891d1eae1d5043462034d Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 11:02:40 +0300 Subject: [PATCH 06/14] Format scripts with shfmt --- dropbear_hook | 14 +++--- dropbear_install | 122 +++++++++++++++++++++++------------------------ 2 files changed, 66 insertions(+), 70 deletions(-) diff --git a/dropbear_hook b/dropbear_hook index 27d8e95..68d25e1 100644 --- a/dropbear_hook +++ b/dropbear_hook @@ -1,16 +1,14 @@ #!/bin/sh -run_hook () -{ - [ -d /dev/pts ] || mkdir -p /dev/pts - mount -t devpts devpts /dev/pts +run_hook() { + [ -d /dev/pts ] || mkdir -p /dev/pts + mount -t devpts devpts /dev/pts - echo "Starting dropbear" - /usr/sbin/dropbear -E -s -j -k + echo "Starting dropbear" + /usr/sbin/dropbear -E -s -j -k } -run_cleanuphook () -{ +run_cleanuphook() { umount /dev/pts rm -R /dev/pts if [ -f /var/run/dropbear.pid ]; then diff --git a/dropbear_install b/dropbear_install index 3120cf7..dfdefc4 100644 --- a/dropbear_install +++ b/dropbear_install @@ -1,97 +1,95 @@ #!/bin/sh get_fingerprint() { - keyfile="$1" - dropbearkey -y -f "${keyfile}" | sed -n '/^Fingerprint:/ {s/Fingerprint: *//; p}' + keyfile="$1" + dropbearkey -y -f "${keyfile}" | sed -n '/^Fingerprint:/ {s/Fingerprint: *//; p}' } display_fingerprints() { - keyfile + keyfile - for keyfile in "/etc/dropbear/dropbear_rsa_host_key" "/etc/dropbear/dropbear_ecdsa_host_key" ; do - if [ -s "${keyfile}" ] ; then - echo "$(basename "${keyfile}") : $(get_fingerprint "${keyfile}")" - fi - done + for keyfile in "/etc/dropbear/dropbear_rsa_host_key" "/etc/dropbear/dropbear_ecdsa_host_key"; do + if [ -s "${keyfile}" ]; then + echo "$(basename "${keyfile}") : $(get_fingerprint "${keyfile}")" + fi + done } copy_openssh_keys() { - osshrsa="/etc/ssh/ssh_host_rsa_key" - osshecdsa="/etc/ssh/ssh_host_ecdsa_key" + osshrsa="/etc/ssh/ssh_host_rsa_key" + osshecdsa="/etc/ssh/ssh_host_ecdsa_key" - dbpre="/etc/dropbear/dropbear_" + dbpre="/etc/dropbear/dropbear_" - return_code=1 + return_code=1 - if [ -s "$osshrsa" ]; then - dropbearconvert openssh dropbear $osshrsa ${dbpre}rsa_host_key - return_code=0 - fi + if [ -s "$osshrsa" ]; then + dropbearconvert openssh dropbear $osshrsa ${dbpre}rsa_host_key + return_code=0 + fi - if [ -s "$osshecdsa" ]; then - dropbearconvert openssh dropbear $osshecdsa ${dbpre}ecdsa_host_key - return_code=0 - fi + if [ -s "$osshecdsa" ]; then + dropbearconvert openssh dropbear $osshecdsa ${dbpre}ecdsa_host_key + return_code=0 + fi - return $return_code + return $return_code } generate_keys() { - keyfile keytype - for keytype in rsa ecdsa ; do - keyfile="/etc/dropbear/dropbear_${keytype}_host_key" - if [ ! -s "$keyfile" ]; then - echo "Generating ${keytype} host key for dropbear ..." - dropbearkey -t "${keytype}" -f "${keyfile}" - fi - done + keyfile keytype + for keytype in rsa ecdsa; do + keyfile="/etc/dropbear/dropbear_${keytype}_host_key" + if [ ! -s "$keyfile" ]; then + echo "Generating ${keytype} host key for dropbear ..." + dropbearkey -t "${keytype}" -f "${keyfile}" + fi + done } -build () -{ - # - # Begin real processing - # +build() { + # + # Begin real processing + # - # Are we even needed? - if [ ! -r "/etc/dropbear/root_key" ] || [ ! -s "/etc/dropbear/root_key" ]; then - echo "There is no root key in /etc/dropbear/root_key existent; exit" - return 0 - fi + # Are we even needed? + if [ ! -r "/etc/dropbear/root_key" ] || [ ! -s "/etc/dropbear/root_key" ]; then + echo "There is no root key in /etc/dropbear/root_key existent; exit" + return 0 + fi - # if TMPDIR is set leave it alone otherwise set - [ -z "$TMPDIR" ] && TMPDIR='/tmp/dropbear_initrd_encrypt' + # if TMPDIR is set leave it alone otherwise set + [ -z "$TMPDIR" ] && TMPDIR='/tmp/dropbear_initrd_encrypt' - # check if TMPDIR exsists if not make it - [ -d "$TMPDIR" ] || mkdir -p "$TMPDIR" + # check if TMPDIR exsists if not make it + [ -d "$TMPDIR" ] || mkdir -p "$TMPDIR" - umask 0022 + umask 0022 - [ -d /etc/dropbear ] && mkdir -p /etc/dropbear + [ -d /etc/dropbear ] && mkdir -p /etc/dropbear - copy_openssh_keys || generate_keys - display_fingerprints + copy_openssh_keys || generate_keys + display_fingerprints - add_checked_modules "/drivers/net/" - add_binary "rm" - add_binary "killall" - add_binary "dropbear" + add_checked_modules "/drivers/net/" + add_binary "rm" + add_binary "killall" + add_binary "dropbear" - add_dir "/root/.ssh" - cat /etc/dropbear/root_key > "${BUILDROOT}"/root/.ssh/authorized_keys + add_dir "/root/.ssh" + cat /etc/dropbear/root_key >"${BUILDROOT}"/root/.ssh/authorized_keys - add_full_dir "/etc/dropbear" - add_file "/lib/libnss_files.so.2" - add_dir "/var/run" - add_dir "/var/log" - touch "${BUILDROOT}"/var/log/lastlog + add_full_dir "/etc/dropbear" + add_file "/lib/libnss_files.so.2" + add_dir "/var/run" + add_dir "/var/log" + touch "${BUILDROOT}"/var/log/lastlog - add_runscript + add_runscript } -help () -{ - cat< Date: Thu, 9 May 2024 11:15:14 +0300 Subject: [PATCH 07/14] Fix issues after converting to posix --- dropbear_install | 3 --- 1 file changed, 3 deletions(-) diff --git a/dropbear_install b/dropbear_install index dfdefc4..620f479 100644 --- a/dropbear_install +++ b/dropbear_install @@ -6,8 +6,6 @@ get_fingerprint() { } display_fingerprints() { - keyfile - for keyfile in "/etc/dropbear/dropbear_rsa_host_key" "/etc/dropbear/dropbear_ecdsa_host_key"; do if [ -s "${keyfile}" ]; then echo "$(basename "${keyfile}") : $(get_fingerprint "${keyfile}")" @@ -37,7 +35,6 @@ copy_openssh_keys() { } generate_keys() { - keyfile keytype for keytype in rsa ecdsa; do keyfile="/etc/dropbear/dropbear_${keytype}_host_key" if [ ! -s "$keyfile" ]; then From 4e13c76c5524f5b7c3f10c888af2eddad39b2639 Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 11:15:31 +0300 Subject: [PATCH 08/14] Add gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ac4da0a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +mkinitcpio-dropbear-*.tar.zst +src/ +pkg/ From 02fc6bb1c319f87530920c1aa2e02648e8d35826 Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 11:15:42 +0300 Subject: [PATCH 09/14] Add PKGBUILD --- ChangeLog | 17 +++++++++++++++++ PKGBUILD | 30 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 ChangeLog create mode 100644 PKGBUILD diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e31eeee --- /dev/null +++ b/ChangeLog @@ -0,0 +1,17 @@ +2015-08-11 Giancarlo Razzolini + + * 0.0.3 : + - Correction of the hook help text. + - Changed the root user home directory to /root. + - Some other cleanups, specially regarding TMPDIR files juggling. + +2015-07-28 Giancarlo Razzolini + + * 0.0.2 : + - Removed leftovers from the old dropbear_initrd_encrypt which where conflicting with mkinitcpio-utils. + +2015-07-14 Giancarlo Razzolini + + * 0.0.1 : + - Initial release. + - Provide the same functionality as in dropbear_initrd_encrypt regarding dropbear. diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..955580f --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,30 @@ +# Maintainer: Marko Korhonen + +pkgname=mkinitcpio-dropbear +pkgver=0.0.4 +pkgrel=1 +pkgdesc='hook to install and enable the dropbear daemon in early userspace' +arch=(any) +url="https://github.com/grazzolini/$pkgname" +license=(GPL3) +depends=(dropbear psmisc) +optdepends=( + 'mkinitcpio-netconf: Network interface configuration' + 'mkinitcpio-ppp: PPP interface configuration' + 'openssh: Allows the use of the same host keys used for normal access' +) +source=( + "dropbear_hook" + "dropbear_install" + "LICENSE" +) +changelog=ChangeLog +sha256sums=('6c529408125bd0c446162f8d4a16d7262d6b39896d8e6f87d364f7b299203315' + '51f44735be81a4488acd9b2b7713a3e61beddd9b167773db0e345adc3b8d693f' + 'ac69d63ecc672c698582b0fc260dbfe42d71adcdab707f807c8e1113be11abd8') + +package() { + install -Dm0644 dropbear_hook "$pkgdir/usr/lib/initcpio/hooks/dropbear" + install -Dm0644 dropbear_install "$pkgdir/usr/lib/initcpio/install/dropbear" + install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE +} From 5f997269882aeffeda9d38c8890e3239370317ca Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 11:32:47 +0300 Subject: [PATCH 10/14] Add support for ed25519 host keys --- PKGBUILD | 2 +- dropbear_install | 49 ++++++++++++++++++++++++------------------------ 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 955580f..70c5d1a 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -20,7 +20,7 @@ source=( ) changelog=ChangeLog sha256sums=('6c529408125bd0c446162f8d4a16d7262d6b39896d8e6f87d364f7b299203315' - '51f44735be81a4488acd9b2b7713a3e61beddd9b167773db0e345adc3b8d693f' + '6e6fcb6a1f3b1ffae85a8b72b56b8fd2b221777713d221641d8cbfd2ad5637b3' 'ac69d63ecc672c698582b0fc260dbfe42d71adcdab707f807c8e1113be11abd8') package() { diff --git a/dropbear_install b/dropbear_install index 620f479..bf370d8 100644 --- a/dropbear_install +++ b/dropbear_install @@ -1,45 +1,46 @@ #!/bin/sh +set -e + +KEY_TYPES="ed25519 ecdsa rsa" + get_fingerprint() { - keyfile="$1" - dropbearkey -y -f "${keyfile}" | sed -n '/^Fingerprint:/ {s/Fingerprint: *//; p}' + kf="$1" + dropbearkey -y -f "${kf}" | sed -n '/^Fingerprint:/ {s/Fingerprint: *//; p}' } display_fingerprints() { - for keyfile in "/etc/dropbear/dropbear_rsa_host_key" "/etc/dropbear/dropbear_ecdsa_host_key"; do - if [ -s "${keyfile}" ]; then - echo "$(basename "${keyfile}") : $(get_fingerprint "${keyfile}")" + for kt in $KEY_TYPES; do + kf="/etc/dropbear/dropbear_${kt}_host_key" + if [ -s "${kf}" ]; then + echo "$(basename "${kf}") : $(get_fingerprint "${kf}")" fi done } copy_openssh_keys() { - osshrsa="/etc/ssh/ssh_host_rsa_key" - osshecdsa="/etc/ssh/ssh_host_ecdsa_key" - - dbpre="/etc/dropbear/dropbear_" - return_code=1 - if [ -s "$osshrsa" ]; then - dropbearconvert openssh dropbear $osshrsa ${dbpre}rsa_host_key - return_code=0 - fi - - if [ -s "$osshecdsa" ]; then - dropbearconvert openssh dropbear $osshecdsa ${dbpre}ecdsa_host_key - return_code=0 - fi + for kt in $KEY_TYPES; do + osshkey="/etc/ssh/ssh_host_$kt" + if [ -s "$osshkey" ]; then + dropbearconvert \ + openssh dropbear \ + "$osshkey" \ + "/etc/dropbear/dropbear_${kt}_host_key" + return_code=0 + fi + done return $return_code } generate_keys() { - for keytype in rsa ecdsa; do - keyfile="/etc/dropbear/dropbear_${keytype}_host_key" - if [ ! -s "$keyfile" ]; then - echo "Generating ${keytype} host key for dropbear ..." - dropbearkey -t "${keytype}" -f "${keyfile}" + for kt in $KEY_TYPES; do + kf="/etc/dropbear/dropbear_${kt}_host_key" + if [ ! -s "$kf" ]; then + echo "Generating ${kt} host key for dropbear ..." + dropbearkey -t "${kt}" -f "${kf}" fi done } From 368afcdfd9a1211f94a1331b65e20f9dc912f54d Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 11:37:21 +0300 Subject: [PATCH 11/14] Fix detecting openssh key --- dropbear_install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dropbear_install b/dropbear_install index bf370d8..30a6009 100644 --- a/dropbear_install +++ b/dropbear_install @@ -22,7 +22,7 @@ copy_openssh_keys() { return_code=1 for kt in $KEY_TYPES; do - osshkey="/etc/ssh/ssh_host_$kt" + osshkey="/etc/ssh/ssh_host_${kt}_key" if [ -s "$osshkey" ]; then dropbearconvert \ openssh dropbear \ From b9e033da0944d6870f4b9037b6592ffc4547bea1 Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 12:19:31 +0300 Subject: [PATCH 12/14] Add support for config file --- PKGBUILD | 6 ++++-- dropbear_config | 1 + dropbear_hook | 11 +++++++++-- dropbear_install | 7 +++++++ 4 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 dropbear_config diff --git a/PKGBUILD b/PKGBUILD index 70c5d1a..410db05 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -18,13 +18,15 @@ source=( "dropbear_install" "LICENSE" ) +backup=( "etc/dropbear/config" ) changelog=ChangeLog -sha256sums=('6c529408125bd0c446162f8d4a16d7262d6b39896d8e6f87d364f7b299203315' - '6e6fcb6a1f3b1ffae85a8b72b56b8fd2b221777713d221641d8cbfd2ad5637b3' +sha256sums=('9852ab6a3ba4191ed3eabbfebb2876fe7ff1003f62309043ec0b8b9374e3b9ee' + '3f6cb2c6edd2a5510e9d2366b68815b0d0f9d7cfc066c26c4b842af44d2024fd' 'ac69d63ecc672c698582b0fc260dbfe42d71adcdab707f807c8e1113be11abd8') package() { install -Dm0644 dropbear_hook "$pkgdir/usr/lib/initcpio/hooks/dropbear" install -Dm0644 dropbear_install "$pkgdir/usr/lib/initcpio/install/dropbear" + install -Dm0644 dropbear_config "$pkgdir/etc/dropbear/config" install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE } diff --git a/dropbear_config b/dropbear_config new file mode 100644 index 0000000..dbbdcc8 --- /dev/null +++ b/dropbear_config @@ -0,0 +1 @@ +DROPBEAR_PORT=22 diff --git a/dropbear_hook b/dropbear_hook index 68d25e1..1fc0d6e 100644 --- a/dropbear_hook +++ b/dropbear_hook @@ -4,8 +4,15 @@ run_hook() { [ -d /dev/pts ] || mkdir -p /dev/pts mount -t devpts devpts /dev/pts - echo "Starting dropbear" - /usr/sbin/dropbear -E -s -j -k + if [ -s /etc/dropbear/config ]; then + echo "Found dropbear config file" + . /etc/dropbear/config + fi + + port=${DROPBEAR_PORT:-22} + + echo "Starting dropbear on port $port" + /usr/sbin/dropbear -E -s -j -k -p "$port" } run_cleanuphook() { diff --git a/dropbear_install b/dropbear_install index 30a6009..8e1be6a 100644 --- a/dropbear_install +++ b/dropbear_install @@ -2,6 +2,7 @@ set -e +CONFIG_FILE="/etc/dropbear/config" KEY_TYPES="ed25519 ecdsa rsa" get_fingerprint() { @@ -83,6 +84,12 @@ build() { add_dir "/var/log" touch "${BUILDROOT}"/var/log/lastlog + if [ -s $CONFIG_FILE ]; then + echo "Using config file $CONFIG_FILE:" + cat $CONFIG_FILE + add_file $CONFIG_FILE + fi + add_runscript } From 60b945ce258976d6aa9bff1035b3e37bd8b35f22 Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 12:29:55 +0300 Subject: [PATCH 13/14] Add changelog, bump version and fix url --- ChangeLog | 6 ++++++ PKGBUILD | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e31eeee..b7405f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2024-05-09 Marko Korhonen + + * 0.1.0 : + - Add support for ed25519 host keys + - Add support for a config file which allows changing the dropbear port + 2015-08-11 Giancarlo Razzolini * 0.0.3 : diff --git a/PKGBUILD b/PKGBUILD index 410db05..8ac5569 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,11 +1,13 @@ # Maintainer: Marko Korhonen +# Contributor: Caleb Maclennan +# Contributor: Giancarlo Razzolini pkgname=mkinitcpio-dropbear -pkgver=0.0.4 +pkgver=0.1.0 pkgrel=1 pkgdesc='hook to install and enable the dropbear daemon in early userspace' arch=(any) -url="https://github.com/grazzolini/$pkgname" +url="https://git.korhonen.cc/FunctionalHacker/$pkgname" license=(GPL3) depends=(dropbear psmisc) optdepends=( From e88176ff5ed84667444ec000ad4dd846421a9e33 Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 9 May 2024 12:51:13 +0300 Subject: [PATCH 14/14] Change pkgname --- .gitignore | 2 +- PKGBUILD | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index ac4da0a..d4a21d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -mkinitcpio-dropbear-*.tar.zst +mkinitcpio-dropbear*.tar.zst src/ pkg/ diff --git a/PKGBUILD b/PKGBUILD index 8ac5569..c8215c4 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,12 +2,14 @@ # Contributor: Caleb Maclennan # Contributor: Giancarlo Razzolini -pkgname=mkinitcpio-dropbear +pkgname=mkinitcpio-dropbear2 +pkgname_="mkinitcpio-dropbear" +conflicts=("$pkgname_") pkgver=0.1.0 pkgrel=1 pkgdesc='hook to install and enable the dropbear daemon in early userspace' arch=(any) -url="https://git.korhonen.cc/FunctionalHacker/$pkgname" +url="https://git.korhonen.cc/FunctionalHacker/$pkgname_" license=(GPL3) depends=(dropbear psmisc) optdepends=( @@ -20,7 +22,7 @@ source=( "dropbear_install" "LICENSE" ) -backup=( "etc/dropbear/config" ) +backup=("etc/dropbear/config") changelog=ChangeLog sha256sums=('9852ab6a3ba4191ed3eabbfebb2876fe7ff1003f62309043ec0b8b9374e3b9ee' '3f6cb2c6edd2a5510e9d2366b68815b0d0f9d7cfc066c26c4b842af44d2024fd' @@ -30,5 +32,5 @@ package() { install -Dm0644 dropbear_hook "$pkgdir/usr/lib/initcpio/hooks/dropbear" install -Dm0644 dropbear_install "$pkgdir/usr/lib/initcpio/install/dropbear" install -Dm0644 dropbear_config "$pkgdir/etc/dropbear/config" - install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE + install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname_/" LICENSE }