diff options
Diffstat (limited to 'mkroot/packages/dropbear')
-rwxr-xr-x | mkroot/packages/dropbear | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/mkroot/packages/dropbear b/mkroot/packages/dropbear new file mode 100755 index 00000000..9a4adcb8 --- /dev/null +++ b/mkroot/packages/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" |