#!/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 ecdsa ed25519
|
|
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
|
|
mkdir -m 0700 -p /var/empty
|
|
|
|
local lport=$(awk '/^Port / { print $2; exit }' /etc/ssh/sshd_config)
|
|
[ -z "$lport" ] && lport=22
|
|
|
|
procd_open_instance
|
|
procd_add_mdns "ssh" "tcp" "$lport"
|
|
procd_set_param command $PROG -D
|
|
procd_close_instance
|
|
}
|
|
|
|
shutdown() {
|
|
local pid
|
|
|
|
stop
|
|
|
|
# kill active clients
|
|
for pid in $(pidof sshd)
|
|
do
|
|
[ "$pid" == "$$" ] && continue
|
|
[ -e "/proc/$pid/stat" ] && kill $pid
|
|
done
|
|
}
|