diff options
Diffstat (limited to 'package/dropbear')
| -rw-r--r-- | package/dropbear/Makefile | 2 | ||||
| -rw-r--r-- | package/dropbear/files/dropbear.config | 3 | ||||
| -rwxr-xr-x | package/dropbear/files/dropbear.init | 54 | 
3 files changed, 46 insertions, 13 deletions
| diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile index 18e4a4570..546facf92 100644 --- a/package/dropbear/Makefile +++ b/package/dropbear/Makefile @@ -106,6 +106,8 @@ define Package/dropbear/install  	ln -sf ../sbin/dropbear $(1)/usr/bin/ssh  	ln -sf ../sbin/dropbear $(1)/usr/bin/dbclient  	ln -sf ../sbin/dropbear $(1)/usr/bin/dropbearkey +	install -d -m0755 $(1)/etc/config +	install -m0755 ./files/dropbear.config $(1)/etc/config/dropbear  	install -d -m0755 $(1)/etc/init.d  	install -m0755 ./files/dropbear.init $(1)/etc/init.d/dropbear  endef diff --git a/package/dropbear/files/dropbear.config b/package/dropbear/files/dropbear.config new file mode 100644 index 000000000..e660ac735 --- /dev/null +++ b/package/dropbear/files/dropbear.config @@ -0,0 +1,3 @@ +config dropbear +	option PasswordAuth 'on' +	option Port         '22' diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init index b928af65c..6f35672d5 100755 --- a/package/dropbear/files/dropbear.init +++ b/package/dropbear/files/dropbear.init @@ -1,21 +1,49 @@  #!/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 +}  start() { -	for type in rsa dss; do { -	  # check for keys -	  key=/etc/dropbear/dropbear_${type}_host_key -	  [ ! -f $key ] && { -	    # generate missing keys -	    mkdir -p /etc/dropbear -	    [ -x /usr/bin/dropbearkey ] && { -	      /usr/bin/dropbearkey -t $type -f $key 2>&- >&- && exec /etc/rc.common "$initscript" start -	    } & -	    exit 0 -	  } -	}; done +	for keytype in rsa dss; do +		# check for keys +		key=/tmp/dropbear/dropbear_${keytype}_host_key +		[ ! -f $key ] && { +			# generate missing keys +			mkdir -p /tmp/dropbear +			[ -x /usr/bin/dropbearkey ] && { +				/usr/bin/dropbearkey -t $keytype -f $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 -	/usr/sbin/dropbear +	chown root /etc/dropbear +	chmod 0700 /etc/dropbear +	config_load dropbear +	/usr/sbin/dropbear $DROPBEAR_ARGS  }  stop() { | 
