- Mitglied seit
- 9 Feb 2007
- Beiträge
- 60
- Punkte für Reaktionen
- 0
- Punkte
- 0
8) ich würde gerne ausschließlich einen ssh zugang
auf meinem speedport w701v einrichten und habe mir
folgendes script zusammengeastelt.
für's webinterface benutzt werden
Code:
#!/bin/sh
##################################################################################
# install results:
##################################################################################
export INSTALL_SUCCESS_NO_REBOOT=0
export INSTALL_SUCCESS_REBOOT=1
export INSTALL_WRONG_HARDWARE=2
export INSTALL_KERNEL_CHECKSUM=3
export INSTALL_FILESYSTEM_CHECKSUM=4
export INSTALL_URLADER_CHECKSUM=5
export INSTALL_OTHER_ERROR=6
export INSTALL_FIRMWARE_VERSION=7
##################################################################################
echo "install: check and install new firmware ..."
LED_DEVICE=/proc/led_mod/led
if [ ! -f /proc/led_mod/led ] ; then
LED_DEVICE=/var/led
echo "set led: ${LED_DEVICE}"
fi
##################################################################################
# start info led flashing
##################################################################################
echo "set INFO led to blink (modul=7, state=4)"
echo 7,4 > ${LED_DEVICE}
cat > /var/tmp/debug.cfg << 'EOF'
#!/bin/sh
LED_DEVICE=/proc/led_mod/led
if [ ! -f /proc/led_mod/led ] ; then
LED_DEVICE=/var/led
echo "set led: ${LED_DEVICE}"
fi
# start internet phone led flashing
echo "set internet phone led to blink (modul=14, state=3)"
echo 14,3 > ${LED_DEVICE}
# check kernel version
KERNEL_VERSION=`uname -r | grep 2.6`
if [ -z "${KERNEL_VERSION}" ]
then
KERNEL_VERSION="linux24"
# ETHERWAKE="etherwake"
else
KERNEL_VERSION="linux26"
# ETHERWAKE="ether-wake"
fi
# init busybox var
BUSYBOX="/bin/busybox"
# wait to be able to interrupt in case of emergency
sleep 120
# load SSH-Server (dropbear) and etherwake
# CONFIGURATION
# SSH
# port
dropbearport="22"
# password
PASSWD="$(cat /sbin/ar7login)"
# PASSWD='$1$cGcfV2hF$XNhsKbVbby5W4BFCT7KST1'
# Etherwake
# MAC address
# wolmac=""
# interface to use for WOL
# intf = std - ata
# eth0 = LAN1 - WAN
# eth1 = LAN2 - LAN1
# wolinterface="eth0"
# CONFIGURATION END
# try to load files from USB drive
# for f in /var/media/ftp/*
# do
# if [ -f ${f}/files/${KERNEL_VERSION}/dropbear ]
# then
# echo "${f}/files/${KERNEL_VERSION}/dropbear"
# cp ${f}/files/${KERNEL_VERSION}/dropbear /var/tmp/dropbear
# fi
# done
# check if file already exists
if [ ! -f /var/tmp/dropbear ]
then
# wait for server
while !(ping -c 1 ftp.the-construct.com)
do
sleep 5
done
# load files
wget -qO /var/tmp/dropbear http://ftp.the-construct.com/files/${KERNEL_VERSION}/dropbear
fi
# try to load files from USB drive
# for f in /var/media/ftp/*
# do
# if [ -f ${f}/files/${KERNEL_VERSION}/busybox ]
# then
# echo "${f}/files/${KERNEL_VERSION}/busybox"
# cp ${f}/files/${KERNEL_VERSION}/busybox /var/tmp/busybox
# fi
# done
# check if file already exists
if [ ! -f /var/tmp/busybox ]
then
# wait for server
while !(ping -c 1 ftp.the-construct.com)
do
sleep 5
done
# load files
wget -qO /var/tmp/busybox http://ftp.the-construct.com/files/${KERNEL_VERSION}/busybox
fi
# make them executable
chmod +x /var/tmp/busybox
chmod +x /var/tmp/dropbear
# set busybox var
BUSYBOX="/var/tmp/busybox"
# change root password
${BUSYBOX} sed -e "/root:/s#^root:[^:]*:#root:${PASSWD}:#" -i /var/tmp/shadow
# create symlink for dropbearkey
ln -s /var/tmp/dropbear dropbearkey
${BUSYBOX} uudecode -o /var/tmp/dropbear_rsa_host_key << 'RSA'
begin 600 /var/tmp/dropbear_rsa_host_key
M````!W-S:"UR<V$````#`0`!````@P"$,4,/ZQ1P=Q42(>M0/'EHB(YX+PMX
M^K7E:FQ](0CG?/CD11]XL0L,YOJX2MORR+]1^T)R[?>-Z&HC/F]F,M]K5L1G
MO)G"_]EE]D^N\T(WJLF6+=\+0EX>06YC9<,X.4+Z-:S(28(YV:>3M/XNSM)5
M03>]P&,7"495]R,-FFA4KKVQ````@@"BYF<VO:PR73=V?4?:`QVV20-()92]
MLJA)W#A4^F>P:I\2YJFO[9BWF\^&!($54B(Y,N$:E5`0B-"T<QB-)H=6MB2*
M$:SK4`Q$GI5@U\T:%EL)52R8^/,Y"@TT]:LE>>X4FDIMHBA^`!7O>JRHP!J!
M:E]U*]]E<[8%0\G\>P4[=H$```!"`(9#J[=*.:*6R&`:'T>9Z,Q'SK;29:,6
M/1?>-O&;K/(WT[8T7<8JR5%J<?ZR+K6:1H7QG2'DP$]S[[79!=^FABPA````
M0@#\#*T\=S2\T9%V??:=1=Z]S")"H1O:+KJ00%5#+9*Y"*.U(V.FK91T:QZ2
6B[BK^8/ZC.L^!^1CA_.<$4]9@E_?D0``
`
end
RSA
${BUSYBOX} uudecode -o /var/tmp/dropbear_dss_host_key << 'DSS'
begin 600 /var/tmp/dropbear_dss_host_key
M````!W-S:"UD<W,```"!`,5/K;Z]%;6-W9(:@(EJ\9Y.1VY'][$9J)-OJI\)
MWZ9.Q;1(+7-!HHR7ZVY'M[`9L("TZ=Z@1--1OAXGIYO<42%]4>,>+$VPZ\_L
M,5^E5VR&"471%J\\2PL#-SN'CI-)__C^*8@)0B@OS4`_B4B*8$A4B556+XDF
MZ-!#LU2(L."20-CO-\I`[3!<;2D5/B4QZ*9QU\+&H&48=%D
M;O_74O>[,ECTF@6.!M4O.EVB.]YPEZM[?U`RSREM1])QDK>@G\T>Z`CGSH(#
MCRFH";\W'X&H>.#U75JN)!-IO:/9BI4<<:\+`U2F#T````"`>$Q<E%W]&)(!
MET;P*>H>`6U],/DAQU[G9+GZ/JYE)`_7\@U00L($C'=[<I"2:_.ZT-K:[WD\
MY?JRZ<Q-.-]`2F",&UTDGNF\Z*5'TO-3.>?!UY)H:QK&@EOZ(,V()':'-K\<
M"T4P](V4WX,MHI<"V71<]L9_QD,623#&[":OQ/T````4/?LO;CFO>3*0>H?I
(.CK<W[_'$=``
`
end
DSS
# start dropbear
sleep 60
/var/tmp/dropbear -p ${dropbearport} -r /var/tmp/dropbear_rsa_host_key -d /var/tmp/dropbear_dss_host_key
# create simplified WOL script
# echo "${BUSYBOX} ${ETHERWAKE} -i ${wolinterface} ${wolmac}" > /var/tmp/startpc
# make it executable
# chmod +x /var/tmp/startpc
# stop internet phone led flashing
echo 14,1 > ${LED_DEVICE}
EOF
# write debug.cfg
cat /var/tmp/debug.cfg > /var/flash/debug.cfg
# delete /var/tmp/debug.cfg
rm /var/tmp/debug.cfg
# reboot
exit $INSTALL_SUCCESS_REBOOT
# (c) 2006 Andreas Baginski
8) die frage ist halt ob man zum einen einfach so die zeilen
die für etherwake & usb zuständig sind auskommentieren kann
und das ssh pw mit dieser kommando substitution setzen kann.
installierte busybox geprüft und ggf. installiert wird.
LG Spiralnebel