From fbe1f88acd8d52005f6ed41e762042aff97d99dc Mon Sep 17 00:00:00 2001 From: Maarten Vanraes Date: Sat, 25 Feb 2012 20:52:44 +0000 Subject: add some tests and error handling in startssh --- rescue/startssh | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'rescue') diff --git a/rescue/startssh b/rescue/startssh index 48bba7cbc..0a88820de 100755 --- a/rescue/startssh +++ b/rescue/startssh @@ -1,20 +1,27 @@ #!/bin/bash -passwd=`genpasswd` +# test for an up interface != lo +if test "x"`ifconfig | cut -d ' ' -f 1 | grep -v '^$' | grep -v lo` = "x"; then + echo "There is no up interface, you can try to execute 'drvinst' to find drivers and 'dhcp-client' to configure your interface for DHCP." >&2 + exit 5 +fi + +# generate host keys +mkdir -p /etc/dropbear +[[ -f /etc/dropbear/dropbear_dss_host_key ]] || dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key >/dev/null || { echo "Can't generate dsa host key" >&2 ; exit 4 } +[[ -f /etc/dropbear/dropbear_rsa_host_key ]] || dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key >/dev/null || { echo "Can't generate rsa host key" >&2 ; exit 3 } +# set a password +passwd=`genpasswd` if (( $? != 0 )); then reset exit $? fi +sed -E -i -e 's/^root:[^:]*:/root:'"$passwd"':/' /etc/passwd || { echo "Can't set password" >&2 ; exit 2 } -# change passwd file -sed -E -i -e 's/^root:[^:]*:/root:'"$passwd"':/' /etc/passwd - -# generate host keys -mkdir -p /etc/dropbear -[[ -f /etc/dropbear/dropbear_dss_host_key ]] || dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key >/dev/null -[[ -f /etc/dropbear/dropbear_rsa_host_key ]] || dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key >/dev/null +# test for /dev/pts +grep '^devpts /dev/pts devpts ' /proc/mounts >/dev/null 2>/dev/null || mount -t devpts devpts /dev/pts echo "" echo -n "Starting ssh daemon... " -dropbear -E 2>/var/log/dropbear.log && echo "OK" +dropbear -E 2>/var/log/dropbear.log && echo "OK" || { echo "Failed" ; exit 1 } -- cgit v1.2.1