aboutsummaryrefslogtreecommitdiff
path: root/mkroot/root/dropbear
diff options
context:
space:
mode:
Diffstat (limited to 'mkroot/root/dropbear')
-rwxr-xr-xmkroot/root/dropbear59
1 files changed, 59 insertions, 0 deletions
diff --git a/mkroot/root/dropbear b/mkroot/root/dropbear
new file mode 100755
index 00000000..9a4adcb8
--- /dev/null
+++ b/mkroot/root/dropbear
@@ -0,0 +1,59 @@
+#!/bin/echo Try "mkroot/mkroot.sh dropbear"
+
+# Example overlay file, adding dropbear (which requires zlib)
+
+echo === download source
+
+download e6d119755acdf9104d7ba236b1242696940ed6dd \
+ http://downloads.sf.net/libpng/zlib-1.2.11.tar.gz
+
+download 9719ea91b5ce8d93ee9a50b5c3a5bcd628736181 \
+ https://matt.ucc.asn.au/dropbear/releases/dropbear-2022.82.tar.bz2
+
+echo === Native build static zlib
+
+setupfor zlib
+# They keep checking in broken generated files.
+rm -f Makefile zconf.h &&
+CC=${CROSS_COMPILE}cc LD=${CROSS_COMPILE}ld AS=${CROSS_COMPILE}as ./configure &&
+make -j $(nproc) || exit 1
+
+# do _not_ cleanup zlib, we need the files we just built for dropbear
+
+echo === $HOST Native build static dropbear
+
+setupfor dropbear
+# Repeat after me: "autoconf is useless"
+echo 'echo "$@"' > config.sub &&
+ZLIB="$(echo ../zlib*)" &&
+CC="$CROSS_COMPILE"cc CFLAGS="-I $ZLIB -O2" LDFLAGS="-L $ZLIB" ./configure --enable-static \
+ --disable-wtmp --host="$(basename "$CROSS_COMPILE" | sed 's/-$//')" &&
+sed -i 's@/usr/bin/dbclient@ssh@' options.h &&
+sed -i 's@\(#define NON_INETD_MODE\) 1@\1 0@' default_options.h &&
+make -j $(nproc) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 &&
+${CROSS_COMPILE}strip dropbearmulti &&
+mkdir -p "$ROOT"/{bin,etc/{rc,dropbear},var/log} &&
+touch "$ROOT"/var/log/lastlog &&
+cp dropbearmulti "$ROOT"/bin || exit 1
+for i in "$ROOT"/bin/{ssh,dropbear,scp,dropbearkey}
+do
+ ln -s dropbearmulti $i || exit 1
+done
+# We didn't cleanup zlib
+unset ZLIB
+rm -rf ../zlib-*
+# cleanup dropbear
+cleanup
+
+# user root password root, user guest no password
+echo -e 'root:$1$939UTPzb$/PfVYAsF2Hqi/AQ3UBjbK/:::::::\nguest::::::::' > "$ROOT"/etc/shadow &&
+chmod 600 "$ROOT"/etc/shadow &&
+
+echo 'netcat -p 22 -L dropbear -iRB &' > "$ROOT"/etc/rc/dropbear &&
+
+# file to run on host to ssh into guest
+echo 'ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" ${1:+$1@}127.0.0.1 -p 2222' > "$OUTPUT"/ssh2dropbear.sh &&
+chmod +x "$OUTPUT"/ssh2dropbear.sh
+
+# Forward 127.0.0.1:2222 into qemu instance
+QEMU_MORE+=" -nic user,hostfwd=tcp:127.0.0.1:2222-:22"