wok rev 4658
ajaxterm: add question/answer support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Dec 28 09:04:55 2009 +0100 (2009-12-28) |
parents | f62b09adf785 |
children | bfad3f8f9d92 |
files | ajaxterm/stuff/usr/share/ajaxterm/login |
line diff
1.1 --- a/ajaxterm/stuff/usr/share/ajaxterm/login Sun Dec 27 18:39:23 2009 +0100 1.2 +++ b/ajaxterm/stuff/usr/share/ajaxterm/login Mon Dec 28 09:04:55 2009 +0100 1.3 @@ -1,16 +1,38 @@ 1.4 #!/bin/sh 1.5 1.6 +# Optional: check user with a random question 1.7 +file=/usr/share/ajaxterm/questions 1.8 +if [ -s $file -a -r $file ]; then 1.9 + line=1 1.10 + while read md5 question; do 1.11 + [ $(( $(date +%s) % $line )) -ne 0 ] && continue 1.12 + ask_question="$question" 1.13 + ask_md5="$md5" 1.14 + line=$(($line+1)) 1.15 + done < $file 1.16 + echo -n "$ask_question " 1.17 + read -t 30 answer 1.18 + [ $ask_md5 == $(echo $answer | md5sum | cut -d\ -f1) ] || exit 1 1.19 +fi 1.20 + 1.21 +# Get SSH server 1.22 server="" 1.23 if [ -x /usr/bin/ssh ]; then 1.24 echo -n "SSH server: " 1.25 read -t 300 server || exit 1 1.26 fi 1.27 + 1.28 +# No SSH server given ? Try login 1.29 [ -n "$server" ] || exec /bin/login 1.30 + 1.31 +# Allow non default SSH port with format server:port 1.32 sshport="" 1.33 case "$server" in 1.34 *:*) sshport="-p ${server#*:}" 1.35 server=${server%:*};; 1.36 esac 1.37 + 1.38 +# heading ! in server name means open remote ssh port with a knock sequence 1.39 if [ -x /usr/bin/knock ]; then 1.40 case "$server" in 1.41 !*) server=${server#*!} 1.42 @@ -18,12 +40,16 @@ 1.43 read -t 30 sequence && knock ${server#*@} $sequence 1.44 esac 1.45 fi 1.46 + 1.47 +# Get SSH user if missing 1.48 case "$server" in 1.49 *@*) ;; 1.50 *) echo -n "$server login: " 1.51 read -t 30 user || exit 1 1.52 server="$user@$server";; 1.53 esac 1.54 + 1.55 +# Launch OpenSSH or Dropbear 1.56 sshargs="-oPreferredAuthentications=keyboard-interactive,password -oNoHostAuthenticationForLocalhost=yes -oLogLevel=FATAL -F/dev/null"; 1.57 [ -L /usr/bin/ssh ] && sshargs="" 1.58 exec ssh $sshport $sshargs $server