dropbear 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/bin/echo Try "scripts/mkroot.sh dropbear"
  2. # Example overlay file, adding dropbear (which requires zlib)
  3. echo === download source
  4. download e6d119755acdf9104d7ba236b1242696940ed6dd \
  5. http://downloads.sf.net/libpng/zlib-1.2.11.tar.gz
  6. download c3d4fe27fa17ec8217dbedbd33dd73a1ca6cda2c \
  7. https://matt.ucc.asn.au/dropbear/releases/dropbear-2020.81.tar.bz2
  8. echo === Native build static zlib
  9. setupfor zlib
  10. # They keep checking in broken generated files.
  11. rm -f Makefile zconf.h &&
  12. CC=${CROSS_COMPILE}cc LD=${CROSS_COMPILE}ld AS=${CROSS_COMPILE}as ./configure &&
  13. make -j $(nproc) || exit 1
  14. # do _not_ cleanup zlib, we need the files we just built for dropbear
  15. cd ..
  16. echo === $HOST Native build static dropbear
  17. setupfor dropbear
  18. # Repeat after me: "autoconf is useless"
  19. echo 'echo "$@"' > config.sub &&
  20. ZLIB="$(echo ../zlib*)" &&
  21. CFLAGS="-I $ZLIB -O2" LDFLAGS="-L $ZLIB" ./configure --enable-static \
  22. --disable-wtmp --host="$(basename "$CROSS_COMPILE" | sed 's/-$//')" &&
  23. sed -i 's@/usr/bin/dbclient@ssh@' options.h &&
  24. sed -i 's@\(#define NON_INETD_MODE\) 1@\1 0@' default_options.h &&
  25. make -j $(nproc) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 &&
  26. ${CROSS_COMPILE}strip dropbearmulti &&
  27. mkdir -p "$ROOT"/{bin,etc/{rc,dropbear},var/log} &&
  28. touch "$ROOT"/var/log/lastlog &&
  29. cp dropbearmulti "$ROOT"/bin || exit 1
  30. for i in "$ROOT"/bin/{ssh,dropbear,scp,dropbearkey}
  31. do
  32. ln -s dropbearmulti $i || exit 1
  33. done
  34. cleanup
  35. rm -rf zlib-*
  36. # user root password root, user guest no password
  37. echo -e 'root:$1$939UTPzb$/PfVYAsF2Hqi/AQ3UBjbK/:::::::\nguest::::::::' > "$ROOT"/etc/shadow &&
  38. chmod 600 "$ROOT"/etc/shadow &&
  39. echo 'netcat -p 22 -L dropbear -iRB &' > "$ROOT"/etc/rc/dropbear &&
  40. # file to run on host to ssh into guest
  41. echo 'ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" ${1:+$1@}127.0.0.1 -p 2222' > "$OUTPUT"/ssh2dropbear.sh &&
  42. chmod +x "$OUTPUT"/ssh2dropbear.sh
  43. # Forward 127.0.0.1:2222 into qemu instance
  44. QEMU_MORE="-nic user,hostfwd=tcp:127.0.0.1:2222-:22"