Disable SSH server by default
To enable SSH, login on console and run "puzzle-sshcfg enable"
This commit is contained in:
parent
2d315fdf26
commit
8d2b414d57
|
@ -0,0 +1,13 @@
|
||||||
|
# Read config file to see if SSH server must be started.
|
||||||
|
|
||||||
|
start_ssh=0
|
||||||
|
|
||||||
|
if [ -f /var/lib/puzzlefw/cfg/start_ssh.conf ]; then
|
||||||
|
. /var/lib/puzzlefw/cfg/start_ssh.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${start_ssh}" -ne 1 ]; then
|
||||||
|
echo "SSH server disabled in configuration, not starting dropbear."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
|
@ -5,11 +5,32 @@
|
||||||
|
|
||||||
. /opt/puzzlefw/lib/functions.sh
|
. /opt/puzzlefw/lib/functions.sh
|
||||||
|
|
||||||
|
# Copy SSH host key from configuration partition.
|
||||||
|
copy_ssh_host_key() {
|
||||||
|
|
||||||
|
# If host key exists, do nothing.
|
||||||
|
[ -f /etc/dropbear/dropbear_ed25519_host_key ] && return
|
||||||
|
|
||||||
|
# If /etc/dropbear is a symlink, delete it.
|
||||||
|
[ -L /etc/dropbear ] && rm /etc/dropbear
|
||||||
|
|
||||||
|
# Create directory /etc/dropbear if it does not exist.
|
||||||
|
mkdir -p /etc/dropbear
|
||||||
|
|
||||||
|
# Try to copy SSH host key from configuration files.
|
||||||
|
if ! cp -p ${CONFIG_DIR}/dropbear_ed25519_host_key /etc/dropbear ; then
|
||||||
|
echo "WARNING: Failed to load SSH host key from SD card" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
chmod 0600 /etc/dropbear/dropbear_ed25519_host_key || true
|
||||||
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
echo "Reading configuration files from SD card ..."
|
echo "Reading configuration files from SD card ..."
|
||||||
lock_config || exit 1
|
lock_config || exit 1
|
||||||
read_config || exit 1
|
read_config || exit 1
|
||||||
|
copy_ssh_host_key
|
||||||
;;
|
;;
|
||||||
stop|restart|reload)
|
stop|restart|reload)
|
||||||
true
|
true
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Load SSH host key from SD card.
|
|
||||||
#
|
|
||||||
|
|
||||||
. /opt/puzzlefw/lib/functions.sh
|
|
||||||
|
|
||||||
start() {
|
|
||||||
|
|
||||||
# If host key exists, do nothing.
|
|
||||||
[ -f /etc/dropbear/dropbear_ed25519_host_key ] && return
|
|
||||||
|
|
||||||
# If /etc/dropbear is a symlink, delete it.
|
|
||||||
[ -L /etc/dropbear ] && rm /etc/dropbear
|
|
||||||
|
|
||||||
# Create directory /etc/dropbear if it does not exist.
|
|
||||||
mkdir -p /etc/dropbear
|
|
||||||
|
|
||||||
# Try to copy SSH host key from configuration files.
|
|
||||||
if ! cp -p ${CONFIG_DIR}/dropbear_ed25519_host_key /etc/dropbear ; then
|
|
||||||
echo "WARNING: Failed to load SSH host key from SD card" >&2
|
|
||||||
echo "Generating new SSH host key." >&2
|
|
||||||
dropbearkey -t ed25519 -f ${CONFIG_DIR}/dropbear_ed25519_host_key.new
|
|
||||||
sync_config dropbear_ed25519_host_key
|
|
||||||
cp -p ${CONFIG_DIR}/dropbear_ed25519_host_key /etc/dropbear
|
|
||||||
fi
|
|
||||||
|
|
||||||
chmod 0600 /etc/dropbear/dropbear_ed25519_host_key
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
start
|
|
||||||
;;
|
|
||||||
stop|restart|reload)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 start"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Enable or disable SSH server.
|
||||||
|
#
|
||||||
|
|
||||||
|
. /opt/puzzlefw/lib/functions.sh
|
||||||
|
|
||||||
|
# Show current configuration.
|
||||||
|
show() {
|
||||||
|
|
||||||
|
start_ssh=0
|
||||||
|
if [ -f ${CONFIG_DIR}/start_ssh.conf ]; then
|
||||||
|
. ${CONFIG_DIR}/start_ssh.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${start_ssh}" -eq 1 ]; then
|
||||||
|
echo "Current setting: start SSH on boot"
|
||||||
|
else
|
||||||
|
echo "Current setting: do not start SSH on boot"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f ${CONFIG_DIR}/dropbear_ed25519_host_key ]; then
|
||||||
|
dropbearkey -y -f ${CONFIG_DIR}/dropbear_ed25519_host_key
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generate persistent SSH host key, if necessary.
|
||||||
|
gen_key() {
|
||||||
|
|
||||||
|
# Do nothing if host key already exists in config partition.
|
||||||
|
[ -f ${CONFIG_DIR}/dropbear_ed25519_host_key ] && return
|
||||||
|
|
||||||
|
# If no host key exists, generate it.
|
||||||
|
if [ ! -f /etc/dropbear/dropbear_ed25519_host_key ]; then
|
||||||
|
|
||||||
|
echo "Generating SSH host key ..."
|
||||||
|
|
||||||
|
# If /etc/dropbear is a symlink, delete it.
|
||||||
|
[ -L /etc/dropbear ] && rm /etc/dropbear
|
||||||
|
|
||||||
|
# Create directory /etc/dropbear if it does not exist.
|
||||||
|
mkdir -p /etc/dropbear
|
||||||
|
|
||||||
|
# Generate host key.
|
||||||
|
dropbearkey -t ed25519 -f /etc/dropbear/dropbear_ed25519_host_key
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Writing SSH host key to config partition ..."
|
||||||
|
|
||||||
|
cp -a /etc/dropbear/dropbear_ed25519_host_key ${CONFIG_DIR}/dropbear_ed25519_host_key.new
|
||||||
|
sync_config dropbear_ed25519_host_key || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Enable starting SSH server during boot.
|
||||||
|
enable() {
|
||||||
|
|
||||||
|
lock_config || exit 1
|
||||||
|
|
||||||
|
gen_key
|
||||||
|
|
||||||
|
echo "Enabling SSH server start on boot ..."
|
||||||
|
|
||||||
|
echo "start_ssh=1" > ${CONFIG_DIR}/start_ssh.conf.new
|
||||||
|
sync_config start_ssh.conf || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Disable starting SSH server during boot.
|
||||||
|
disable() {
|
||||||
|
|
||||||
|
lock_config || exit 1
|
||||||
|
|
||||||
|
echo "Disabling SSH server start on boot ..."
|
||||||
|
|
||||||
|
echo "start_ssh=0" > ${CONFIG_DIR}/start_ssh.conf.new
|
||||||
|
sync_config start_ssh.conf || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
show)
|
||||||
|
show
|
||||||
|
;;
|
||||||
|
enable)
|
||||||
|
enable
|
||||||
|
;;
|
||||||
|
disable)
|
||||||
|
disable
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
script="${0##*/}"
|
||||||
|
cat <<EOF
|
||||||
|
Usage: $script {enable|disable}"
|
||||||
|
|
||||||
|
$script show
|
||||||
|
Show current configuration.
|
||||||
|
|
||||||
|
$script enable
|
||||||
|
Enable starting SSH server during boot.
|
||||||
|
|
||||||
|
$script disable
|
||||||
|
Disable starting SSH server during boot.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
Loading…
Reference in New Issue