57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh /etc/rc.common
 | 
						|
# Copyright (C) 2006 OpenWrt.org
 | 
						|
# Copyright (C) 2006 Carlos Sobrinho
 | 
						|
 | 
						|
config_cb() {
 | 
						|
	local cfg="$CONFIG_SECTION"
 | 
						|
	local nopasswd
 | 
						|
	local type
 | 
						|
	config_get cfgtype "$cfg" TYPE
 | 
						|
 | 
						|
	case "$cfgtype" in
 | 
						|
		dropbear)
 | 
						|
			config_get passauth $cfg PasswordAuth
 | 
						|
			config_get port $cfg Port
 | 
						|
 | 
						|
			case "$passauth" in
 | 
						|
				no|off|disabled|0) nopasswd=1;;
 | 
						|
			esac
 | 
						|
			DROPBEAR_ARGS="${port:+-p $port} ${nopasswd:+-s}"
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
}
 | 
						|
 | 
						|
keygen() {
 | 
						|
	for keytype in rsa dss; do
 | 
						|
		# check for keys
 | 
						|
		key=dropbear/dropbear_${keytype}_host_key
 | 
						|
		[ -f /tmp/$key -o -f /etc/$key ] || {
 | 
						|
			# generate missing keys
 | 
						|
			mkdir -p /tmp/dropbear
 | 
						|
			[ -x /usr/bin/dropbearkey ] && {
 | 
						|
				/usr/bin/dropbearkey -t $keytype -f /tmp/$key 2>&- >&- && exec /etc/rc.common "$initscript" start
 | 
						|
			} &
 | 
						|
		exit 0
 | 
						|
		}
 | 
						|
	done
 | 
						|
 | 
						|
	lock /tmp/.switch2jffs
 | 
						|
	mkdir -p /etc/dropbear
 | 
						|
	mv /tmp/dropbear/dropbear_* /etc/dropbear/
 | 
						|
	lock -u /tmp/.switch2jffs
 | 
						|
	chown root /etc/dropbear
 | 
						|
	chmod 0700 /etc/dropbear
 | 
						|
}
 | 
						|
 | 
						|
start() {
 | 
						|
	[ -f /etc/dropbear/dropbear_rsa_host_key -a \
 | 
						|
	  -f /etc/dropbear/dropbear_dss_host_key ] || keygen
 | 
						|
	
 | 
						|
	config_load dropbear
 | 
						|
	/usr/sbin/dropbear $DROPBEAR_ARGS
 | 
						|
}
 | 
						|
 | 
						|
stop() {
 | 
						|
	killall dropbear
 | 
						|
}
 |