#!/bin/sh # Copyright (C) 2006-2015 OpenWrt.org # Copyright (C) 2010 Vertical Communications failsafe_netlogin () { dropbearkey -t rsa -s 1024 -f /tmp/dropbear_failsafe_host_key dropbear -r /tmp/dropbear_failsafe_host_key <> /dev/null 2>&1 } failsafe_shell() { local console="$(sed -e 's/ /\n/g' /proc/cmdline | grep '^console=' | head -1 | sed -e 's/^console=//' -e 's/,.*//')" [ -n "$console" ] || console=console [ -c "/dev/$console" ] || return 0 while true; do ash --login <"/dev/$console" >"/dev/$console" 2>"/dev/$console" sleep 1 done & } boot_hook_add failsafe failsafe_netlogin boot_hook_add failsafe failsafe_shell