Files @ 0529d3e443be
Branch filter:

Location: freifunk/Firmware-building/build_script/freifunk_root.sh - annotation

x
fix: do pkg updates if available when setting up VM
#!/usr/bin/env bash
set +xe

username=user
ssh_login_key="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOLFCOqpPOTZEQiWcY9TyVQnMoc5bCYlxLaRKhiB/uxo xbr 2024-06-16"
projects_c3l_pubkey="|1|X2M4bHKf8E+plhJ6KoDZzCfw5LI=|EpHLDWOmOq4SLelYTGd8SH+7hvU= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIXfRmGmfbxPoErs5lpTnz+PZRQdh0QvPGTiswxFkXOx"

log() {
    printf "[-] %s\n" "$@"
}

install_packages() {
    log "Installing packages..."

    apt update && apt upgrade -y
    # Installing QoL packages (1) then gluon deps (2)
    # ! Debian 13-specific !
    apt install -y htop tmux vim sudo mosh \
                git python3 python-is-python3 python3-setuptools build-essential ecdsautils gawk unzip libncurses5-dev zlib1g-dev libssl-dev libelf-dev wget rsync time qemu-utils
}

create_user() {
    log "Creating user..."

    # user: forcing bash, and needs (passwordless) sudo
    useradd -ms /bin/bash -G sudo $username
    # enabling passwordless sudo
    sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g'
}

ssh_setup() {
    log "Setting up SSH..."

    sudo -u user ssh-keygen -t ed25519 -N '' -C 'freifunk-builder' <<<n

    home_dir=""; eval home_dir=~$username
    echo "$ssh_login_key" >> "$home_dir/.ssh/authorized_keys"
    chmod -v 600 "$home_dir/.ssh/authorized_keys"
    echo "$projects_c3l_pubkey" >> "$home_dir/.ssh/known_hosts"
    chmod -v 644 "$home_dir/.ssh/known_hosts"

    echo "The user's SSH pubkey is the following:"
    cat "$home_dir/.ssh/id_ed25519.pub"
    echo
    echo "Do not forget to add it to projects.c3l.lu"
}

install_packages
create_user
ssh_setup