librelad 3a679d7343 feat(ssh): admin host SSH-access engine (backend + CLI + snapshot)
Fresh, on-demand inbound SSH-access management for the host (replaces the old
maze). scripts/ssh/host_access.sh manages the install user's authorized_keys —
add a pasted public key (validated), list, remove — and toggles sshd password
login behind a lockout guard (won't disable passwords with no key; won't drop
the last key while passwords are off; sshd -t before reload, with backup).

New 'ssh' CLI category (status/key-add/key-remove/password-auth/generate) and
a webuiGenerateSshAccess snapshot (data/ssh/access.json: user, password_auth,
authorized keys as type+fingerprint+comment — public only) wired into the
regen chain. Nothing runs automatically; only explicit admin actions change
anything. WebUI page next.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-23 16:40:59 +01:00

37 lines
909 B
Bash
Executable File

#!/bin/bash
# Used for the full LibrePortal application
files_libreportal_app=(
"${app_scripts[@]}"
"${backup_scripts[@]}"
"${checks_scripts[@]}"
"${cli_scripts[@]}"
"${command_scripts[@]}"
"${config_scripts[@]}"
"${crontab_scripts[@]}"
"${database_scripts[@]}"
"${docker_scripts[@]}"
"${function_scripts[@]}"
"${gluetun_scripts[@]}"
"${headscale_scripts[@]}"
"${install_scripts[@]}"
"${logs_scripts[@]}"
"${menu_scripts[@]}"
"${migrate_scripts[@]}"
"${network_scripts[@]}"
"${os_scripts[@]}"
"${restore_scripts[@]}"
"${setup_scripts[@]}"
"${source_scripts[@]}"
"${ssh_scripts[@]}"
"${ssl_scripts[@]}"
"${start_scripts[@]}"
"${swapfile_scripts[@]}"
"${ufw_scripts[@]}"
"${ufwd_scripts[@]}"
"${update_scripts[@]}"
"${user_scripts[@]}"
"${webui_scripts[@]}"
"${wireguard_scripts[@]}"
)