2025-02-28 08:19:52 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2025-02-28 08:31:52 +01:00
|
|
|
# Define color codes
|
2025-02-28 08:33:08 +01:00
|
|
|
GREEN='\e[32m'
|
|
|
|
BLUE='\e[34m'
|
|
|
|
YELLOW='\e[33m'
|
|
|
|
NC='\e[0m' # No Color
|
2025-02-28 08:31:52 +01:00
|
|
|
|
|
|
|
# Function for consistent log messages
|
|
|
|
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
|
|
|
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
|
|
log_skip() { echo -e "${YELLOW}[SKIPPED]${NC} $1"; }
|
|
|
|
|
2025-02-28 08:26:43 +01:00
|
|
|
# Überprüfen, ob der .ssh-Ordner existiert, wenn nicht, erstelle ihn
|
|
|
|
if [ ! -d "$HOME/.ssh" ]; then
|
|
|
|
mkdir -m 700 "$HOME/.ssh"
|
2025-02-28 08:31:52 +01:00
|
|
|
log_success ".ssh-Verzeichnis wurde erstellt."
|
2025-02-28 08:26:43 +01:00
|
|
|
else
|
2025-02-28 08:31:52 +01:00
|
|
|
log_info ".ssh-Verzeichnis existiert bereits."
|
2025-02-28 08:26:43 +01:00
|
|
|
fi
|
|
|
|
|
2025-02-28 08:29:07 +01:00
|
|
|
# Benutzer fragen, ob ein SSH-Key hinzugefügt werden soll
|
2025-02-28 08:34:32 +01:00
|
|
|
log_info "SSH-Public-Key hinzufügen? (Leerlassen zum Überspringen)"
|
|
|
|
read -p "> " user_input
|
2025-02-28 08:26:43 +01:00
|
|
|
|
2025-02-28 08:29:07 +01:00
|
|
|
# Nur fortfahren, wenn der Benutzer etwas eingegeben hat
|
|
|
|
if [ ! -z "$user_input" ]; then
|
|
|
|
# Überprüfen, ob der Key bereits in authorized_keys vorhanden ist
|
|
|
|
if grep -q "$user_input" "$HOME/.ssh/authorized_keys"; then
|
2025-02-28 08:31:52 +01:00
|
|
|
log_info "Der SSH-Public-Key ist bereits vorhanden."
|
2025-02-28 08:29:07 +01:00
|
|
|
else
|
|
|
|
# Den eingegebenen Public Key in die authorized_keys-Datei speichern
|
|
|
|
echo "$user_input" >> "$HOME/.ssh/authorized_keys"
|
2025-02-28 08:31:52 +01:00
|
|
|
log_success "SSH-Public-Key wurde hinzugefügt."
|
2025-02-28 08:29:07 +01:00
|
|
|
fi
|
2025-02-28 08:26:43 +01:00
|
|
|
else
|
2025-02-28 08:31:52 +01:00
|
|
|
log_skip "SSH-Key Installation übersprungen."
|
2025-02-28 08:26:43 +01:00
|
|
|
fi
|
2025-02-28 08:30:25 +01:00
|
|
|
|
|
|
|
# Fragen, ob das System aktualisiert werden soll
|
2025-02-28 08:34:32 +01:00
|
|
|
log_info "System aktualisieren? (Y/n)"
|
|
|
|
read -p "> " update_input
|
2025-02-28 08:30:25 +01:00
|
|
|
|
|
|
|
# Überprüfen der Eingabe - Standardmäßig 'Y' bei Enter, sonst nur bei 'y' oder 'Y'
|
|
|
|
if [[ -z "$update_input" || "$update_input" =~ ^[Yy]$ ]]; then
|
2025-02-28 08:31:52 +01:00
|
|
|
log_info "System wird aktualisiert..."
|
2025-02-28 08:30:25 +01:00
|
|
|
apt update && apt upgrade -y
|
2025-02-28 08:31:52 +01:00
|
|
|
log_success "System wurde erfolgreich aktualisiert."
|
2025-02-28 08:30:25 +01:00
|
|
|
else
|
2025-02-28 08:31:52 +01:00
|
|
|
log_skip "System-Aktualisierung übersprungen."
|
2025-02-28 08:30:25 +01:00
|
|
|
fi
|