diff --git a/board/common/overlay/etc/init.d/S60sshd b/board/common/overlay/etc/init.d/S60sshd index 772b98b27c..4d402056f6 100755 --- a/board/common/overlay/etc/init.d/S60sshd +++ b/board/common/overlay/etc/init.d/S60sshd @@ -1,6 +1,8 @@ #!/bin/bash -CONF="/etc/sshd_config" +SYS_CONF="/etc/sshd_config" +USER_CONF="/data/etc/sshd_config" +CONF="/var/run/sshd_config" PROG="/usr/sbin/sshd" PROG_KG="/usr/bin/ssh-keygen" @@ -10,7 +12,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base -test -s ${CONF} || exit 0 +test -s ${SYS_CONF} || exit 0 test "${OS_NETWORKLESS}" == "true" && exit 0 @@ -18,6 +20,13 @@ test "${OS_NETWORKLESS}" == "true" && exit 0 start() { msg_begin "Starting sshd" + # merge user and sys conf files; options in first file take precedence + if [[ -s ${USER_CONF} ]]; then + cat ${USER_CONF} ${SYS_CONF} > ${CONF} + else + cp ${SYS_CONF} ${CONF} + fi + # create any missing keys if ! ${PROG_KG} -A >/dev/null; then msg_fail @@ -57,4 +66,3 @@ case "$1" in echo "Usage: $0 {start|stop|restart}" exit 1 esac - diff --git a/board/common/overlay/etc/sshd_config b/board/common/overlay/etc/sshd_config index 7ec411a8aa..1ff59cc9b4 100644 --- a/board/common/overlay/etc/sshd_config +++ b/board/common/overlay/etc/sshd_config @@ -1,4 +1,3 @@ -Port 22 ListenAddress 0.0.0.0 HostKey /data/etc/ssh_host_rsa_key