diff options
author | Maarten Vanraes <alien@mageia.org> | 2012-02-25 20:52:44 +0000 |
---|---|---|
committer | Maarten Vanraes <alien@mageia.org> | 2012-02-25 20:52:44 +0000 |
commit | ac0671924c327f3d0435842757d01a2e3a2bee25 (patch) | |
tree | b52528c86675b4889df3a25274e2b9e3bdf2a3a5 | |
parent | 843d674af78b9e781c941ecd8f8a8b128a69281a (diff) | |
download | drakx-ac0671924c327f3d0435842757d01a2e3a2bee25.tar drakx-ac0671924c327f3d0435842757d01a2e3a2bee25.tar.gz drakx-ac0671924c327f3d0435842757d01a2e3a2bee25.tar.bz2 drakx-ac0671924c327f3d0435842757d01a2e3a2bee25.tar.xz drakx-ac0671924c327f3d0435842757d01a2e3a2bee25.zip |
add some tests and error handling in startssh
-rwxr-xr-x | rescue/startssh | 25 |
1 files changed, 16 insertions, 9 deletions
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 } |