#!/bin/sh /etc/rc.common # Copyright (C) 2006-2011 OpenWrt.org START=50 STOP=50 USE_PROCD=1 PROG=/usr/sbin/sshd start_service() { for type in rsa dsa; do { # check for keys key=/etc/ssh/ssh_host_${type}_key [ ! -f $key ] && { # generate missing keys [ -x /usr/bin/ssh-keygen ] && { /usr/bin/ssh-keygen -N '' -t $type -f $key 2>&- >&- } } }; done user_exists sshd 22 || user_add sshd 22 22 sshd /var/empty group_exists sshd 22 || group_add sshd 22 mkdir -m 0700 -p /var/empty procd_open_instance procd_set_param command $PROG -D procd_close_instance } shutdown() { local pid local pids local pid_mine stop # kill active clients pid_mine="$$" pids="$(pidof sshd)" for pid in $pids; do [ "$pid" = "$pid_mine" ] && continue [ -e "/proc/$pid/stat" ] && kill $pid done }