#!/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 # Add default ssh password if not set echo "$SSH_USER:$SSH_PASSWORD" | chpasswd else echo "User $SSH_USER already exists." fi # Create necessary directories mkdir -p "$SSH_HOST_KEYS_DIR" # Generate host keys if they don't exist for key_type in rsa ed25519; do if [ -f "$SSH_HOST_KEYS_DIR/ssh_host_${key_type}_key" ]; then echo "Host key for $key_type already exists, skipping generation." continue else 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 fi done if [ ! -f $SSH_CONFIG_FILE ]; then cat >"$SSH_CONFIG_FILE" <