Stefan 2 miesięcy temu
rodzic
commit
71f3a5fbe3
2 zmienionych plików z 91 dodań i 0 usunięć
  1. 26 0
      scriptview.sh
  2. 65 0
      ssh/ssh-connection.sh

+ 26 - 0
scriptview.sh

@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# === Liste der Skripte ===
+SCRIPTS=(
+    "/home/stefan/Bashscripte/ssh/ssh-connection.sh"
+)
+
+# === Auswahl anzeigen ===
+echo "Verfügbare Skripte:"
+for i in "${!SCRIPTS[@]}"; do
+    printf "%d) %s\n" $((i+1)) "${SCRIPTS[$i]}"
+done
+
+# === Benutzereingabe ===
+read -rp "Bitte eine Nummer eingeben (1-${#SCRIPTS[@]}): " auswahl
+
+# === Eingabe prüfen und ausführen ===
+if [[ "$auswahl" =~ ^[0-9]+$ ]] && (( auswahl >= 1 && auswahl <= ${#SCRIPTS[@]} )); then
+    script="${SCRIPTS[$((auswahl-1))]}"
+    echo "Führe aus: $script"
+    bash "$script"
+else
+    echo "Ungültige Auswahl"
+    exit 1
+fi
+

+ 65 - 0
ssh/ssh-connection.sh

@@ -0,0 +1,65 @@
+#!/bin/bash
+
+# ========== Globale Defaults ==========
+DEFAULT_SSH_USER="root"
+DEFAULT_SSH_PORT=22
+DEFAULT_SSH_KEY="/home/stefan/daten/Nextcloud/SSH/SSH-Key/Lieblingsnetz/lieblingsnetz_key_rsa"
+
+# ========== Zieldefinitionen ==========
+# Format: Name|Host|[User]|[Port]|[Key]
+TARGET_LIST=(
+    "102-Gogs-GIT|192.168.1.102"
+    "103-LS25-Server|192.168.1.103|stefan"
+    "104-Game-Server|192.168.1.104|stefan"
+    "105-Sterling-PDF|192.168.1.105"
+    "106-DynDNS Update|192.168.1.106|stefan"
+    "107-Frigate-NVR|192.168.1.107"
+    "109-Paperless-ngx|192.168.1.109"
+    "110-Homeassistant|192.168.1.110"
+    "112-n8n|192.168.1.112|stefan"
+    "113-Nginx-Proxy-Manager|192.168.1.113"
+    "CX12-Nextcloud-Backup|188.245.170.72||2223"
+    "CX12-Cloud-Server|78.47.124.13||2223"
+
+)
+
+# ========== Zielauswahl mit Nummern ==========
+echo "Verfügbare SSH-Ziele:"
+i=1
+for entry in "${TARGET_LIST[@]}"; do
+    IFS='|' read -r NAME HOST USER PORT KEY <<< "$entry"
+    echo "$i) $NAME"
+    ((i++))
+done
+
+read -p "Nummer eingeben: " CHOICE
+
+# ========== Auswahl prüfen ==========
+if ! [[ "$CHOICE" =~ ^[0-9]+$ ]] || ((CHOICE < 1 || CHOICE > ${#TARGET_LIST[@]})); then
+    echo "Ungültige Auswahl!"
+    exit 1
+fi
+
+TARGET="${TARGET_LIST[CHOICE-1]}"
+
+# ========== Konfiguration auflösen ==========
+IFS='|' read -r NAME HOST USER PORT KEY <<< "$TARGET"
+
+SSH_USER="${USER:-$DEFAULT_SSH_USER}"
+SSH_PORT="${PORT:-$DEFAULT_SSH_PORT}"
+SSH_KEY="${KEY:-$DEFAULT_SSH_KEY}"
+
+# ========== Berechtigungen prüfen ==========
+if [[ ! -f "$SSH_KEY" ]]; then
+    echo "Fehler: SSH-Key '$SSH_KEY' existiert nicht."
+    exit 1
+fi
+
+if [[ $(stat -c "%a" "$SSH_KEY") != "600" ]]; then
+    echo "Achtung: Berechtigungen für $SSH_KEY werden auf 600 gesetzt..."
+    chmod 600 "$SSH_KEY" || { echo "Fehler beim Setzen der Berechtigungen."; exit 1; }
+fi
+
+# ========== Verbindung aufbauen ==========
+echo "Verbinde mit $NAME ($SSH_USER@$HOST:$SSH_PORT)..."
+ssh -i "$SSH_KEY" -p "$SSH_PORT" "$SSH_USER@$HOST"