From 63b9fa7e33d3b5a4a8eaef0be8173af3c3adb7d2 Mon Sep 17 00:00:00 2001 From: admManuel Date: Sun, 5 Jan 2025 09:03:49 +0000 Subject: [PATCH] Update Linux/SSH/README.md --- Linux/SSH/README.md | 72 +++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/Linux/SSH/README.md b/Linux/SSH/README.md index e7a750d..f050ec2 100644 --- a/Linux/SSH/README.md +++ b/Linux/SSH/README.md @@ -13,8 +13,24 @@ RED='\033[1;31m' GREEN='\033[1;32m' YELLOW='\033[1;33m' BLUE='\033[1;34m' +WHITE='\033[1;37m' RESET='\033[0m' +# Spinner (rotierender Kreis) +spinner() { + local pid=$1 + local delay=0.1 + local spinstr='|/-\' + while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do + local temp=${spinstr#?} + printf " [%c] " "$spinstr" + local spinstr=$temp${spinstr%"$temp"} + sleep $delay + printf "\b\b\b\b\b\b" + done + printf " \b\b\b\b" +} + log() { echo -e "${GREEN}$1${RESET}" } @@ -27,16 +43,26 @@ error() { echo -e "${RED}$1${RESET}" } +# Funktion zur Installation von Paketen mit Spinner +install_package() { + local package=$1 + local cmd=$2 + warn "Installiere $package..." + $cmd &> /dev/null & + spinner $! + log "$package wurde erfolgreich installiert." +} + # Überprüfe und installiere sudo, falls nicht vorhanden if ! command -v sudo &> /dev/null; then warn "sudo ist nicht installiert. Versuche, sudo zu installieren..." if command -v apt &> /dev/null; then - apt update && apt install -y sudo + install_package "sudo" "apt update && apt install -y sudo" elif command -v dnf &> /dev/null; then - dnf install -y sudo + install_package "sudo" "dnf install -y sudo" elif command -v apk &> /dev/null; then - apk add sudo + install_package "sudo" "apk add sudo" else error "Nicht unterstütztes System. Bitte sudo manuell installieren." exit 1 @@ -50,11 +76,11 @@ if ! command -v sshd &> /dev/null; then warn "OpenSSH-Server wird installiert..." if command -v apt &> /dev/null; then - sudo apt update && sudo apt install -y openssh-server + install_package "OpenSSH-Server" "sudo apt update && sudo apt install -y openssh-server" elif command -v dnf &> /dev/null; then - sudo dnf install -y openssh-server + install_package "OpenSSH-Server" "sudo dnf install -y openssh-server" elif command -v apk &> /dev/null; then - sudo apk add openssh + install_package "OpenSSH-Server" "sudo apk add openssh" else error "Nicht unterstütztes System. Bitte OpenSSH manuell installieren." exit 1 @@ -66,9 +92,11 @@ fi # Generiere fehlende Host-Schlüssel (Ed25519) if [ ! -f "$ED25519_KEY" ]; then warn "Host-Schlüssel fehlt. Generiere ssh_host_ed25519_key..." - sudo ssh-keygen -t ed25519 -f $ED25519_KEY -N "" + sudo ssh-keygen -t ed25519 -f $ED25519_KEY -N "" &> /dev/null & + spinner $! sudo chown root:root $ED25519_KEY sudo chmod 600 $ED25519_KEY + log "Host-Schlüssel ssh_host_ed25519_key wurde erstellt." else log "Host-Schlüssel ssh_host_ed25519_key ist bereits vorhanden." fi @@ -97,7 +125,7 @@ for user in $SSH_USERS; do log "Benutzer $user existiert." VALID_USERS+="$user " else - echo -en "${BLUE}Benutzer $user existiert nicht. Soll dieser erstellt werden? (y/n): ${RESET}" + echo -en "${BLUE}Benutzer $user existiert nicht. Soll dieser erstellt werden? ${YELLOW}[${WHITE}y/n${YELLOW}]${RESET}: " read CREATE_USER if [ "$CREATE_USER" == "y" ]; then sudo adduser $user @@ -112,7 +140,7 @@ for user in $SSH_USERS; do sudo chmod 700 /home/$user/.ssh sudo chmod 600 /home/$user/.ssh/authorized_keys - echo -en "${BLUE}Möchtest du einen SSH Public Key für $user hinzufügen? (y/n): ${RESET}" + echo -en "${BLUE}Möchtest du einen SSH Public Key für $user hinzufügen? ${YELLOW}[${WHITE}y/n${YELLOW}]${RESET}: " read ADD_KEY if [ "$ADD_KEY" == "y" ]; then echo -en "${BLUE}Füge den SSH Public Key hier ein: ${RESET}" @@ -124,46 +152,20 @@ for user in $SSH_USERS; do fi done -# SSH-Konfigurationsdatei erstellen warn "Erstelle SSH-Konfigurationsdatei..." sudo tee $SSH_CONFIG_FILE > /dev/null <