From 8c3f6424e039e6463df5a3337942e987ed2ad7d9 Mon Sep 17 00:00:00 2001 From: gyurix Date: Thu, 10 Jul 2025 08:15:51 +0200 Subject: [PATCH] Add Dockerfile and backup script for SSH server setup --- Dockerfile | 11 +++++++++ start_backup.sh | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 Dockerfile create mode 100644 start_backup.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ead7fef --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM alpine:latest + +RUN apk add --no-cache \ + openssh-server-pam \ + su-exec \ + borgbackup + +COPY start_backup.sh /start_backup.sh +RUN chmod +x /start_backup.sh + +CMD /start_backup.sh \ No newline at end of file diff --git a/start_backup.sh b/start_backup.sh new file mode 100644 index 0000000..3b1f37e --- /dev/null +++ b/start_backup.sh @@ -0,0 +1,65 @@ +#!/bin/sh + +SSH_PORT=${SSH_PORT:-20022} +SSH_USER=${SSH_USER:-"backup"} +SSH_PASSWORD=${SSH_PASSWORD:-"backup"} +HOME="/home/$SSH_USER" +SSH_DIR="$HOME/.ssh" +SSH_CONFIG_DIR="$HOME/.ssh/server" +SSH_HOST_KEYS_DIR="$SSH_CONFIG_DIR/keys" +SSH_CONFIG_FILE="$SSH_CONFIG_DIR/sshd_config" +SSH_PID_FILE="$SSH_CONFIG_DIR/sshd.pid" + +if ! id -u "$SSH_USER" >/dev/null 2>&1; then + echo "Creating user $SSH_USER..." + adduser -D -s /bin/sh -h "/home/$SSH_USER" "$SSH_USER" + # Ensure the user is properly initialized in shadow database + passwd -u "$SSH_USER" 2>/dev/null || true +fi + +# Create necessary directories +mkdir -p "$SSH_CONFIG_DIR" "$SSH_HOST_KEYS_DIR" + +# Generate host keys if they don't exist +for key_type in rsa ed25519; do + key_file="$SSH_HOST_KEYS_DIR/ssh_host_${key_type}_key" + echo "Generating $key_type host key..." + ssh-keygen -t "$key_type" -f "$key_file" -N "" -q +done + +# Add default ssh password if not set +echo "$SSH_USER:$SSH_PASSWORD" | chpasswd + +cat >"$SSH_CONFIG_FILE" <