|
@@ -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"
|