| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/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"
- )
- # ========== 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"
|