ssh-connection.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. # ========== Globale Defaults ==========
  3. DEFAULT_SSH_USER="root"
  4. DEFAULT_SSH_PORT=22
  5. DEFAULT_SSH_KEY="/home/stefan/Nextcloud/SSH/SSH-Key/Lieblingsnetz/lieblingsnetz_key_rsa"
  6. # ========== Zieldefinitionen ==========
  7. # Format: Name|Host|[User]|[Port]|[Key]
  8. TARGET_LIST=(
  9. "101-Immich|192.168.1.101"
  10. "102-Gogs-GIT|192.168.1.102|stefan"
  11. "103-LS25-Server|192.168.1.103|stefan"
  12. "104-Game-Server|192.168.1.104|stefan"
  13. "105-Sterling-PDF|192.168.1.105"
  14. "106-DynDNS Update|192.168.1.106|stefan"
  15. "107-Frigate-NVR|192.168.1.107"
  16. "108-Paperless-NGX-VM|192.168.1.108|stefan"
  17. "110-Homeassistant|192.168.1.110"
  18. "111-Zoraxy|192.168.1.111"
  19. "112-n8n|192.168.1.112|stefan"
  20. "113-Nginx-Proxy-Manager|192.168.1.113|stefan"
  21. "CX12-Nextcloud-Backup|188.245.170.72||2223"
  22. "Fungamer-Website|85.10.204.14|fungamer"
  23. )
  24. # ========== Zielauswahl mit Nummern ==========
  25. echo "Verfügbare SSH-Ziele:"
  26. i=1
  27. for entry in "${TARGET_LIST[@]}"; do
  28. IFS='|' read -r NAME HOST USER PORT KEY <<< "$entry"
  29. echo "$i) $NAME"
  30. ((i++))
  31. done
  32. read -p "Nummer eingeben: " CHOICE
  33. # ========== Auswahl prüfen ==========
  34. if ! [[ "$CHOICE" =~ ^[0-9]+$ ]] || ((CHOICE < 1 || CHOICE > ${#TARGET_LIST[@]})); then
  35. echo "Ungültige Auswahl!"
  36. exit 1
  37. fi
  38. TARGET="${TARGET_LIST[CHOICE-1]}"
  39. # ========== Konfiguration auflösen ==========
  40. IFS='|' read -r NAME HOST USER PORT KEY <<< "$TARGET"
  41. SSH_USER="${USER:-$DEFAULT_SSH_USER}"
  42. SSH_PORT="${PORT:-$DEFAULT_SSH_PORT}"
  43. SSH_KEY="${KEY:-$DEFAULT_SSH_KEY}"
  44. # ========== Berechtigungen prüfen ==========
  45. if [[ ! -f "$SSH_KEY" ]]; then
  46. echo "Fehler: SSH-Key '$SSH_KEY' existiert nicht."
  47. exit 1
  48. fi
  49. if [[ $(stat -c "%a" "$SSH_KEY") != "600" ]]; then
  50. echo "Achtung: Berechtigungen für $SSH_KEY werden auf 600 gesetzt..."
  51. chmod 600 "$SSH_KEY" || { echo "Fehler beim Setzen der Berechtigungen."; exit 1; }
  52. fi
  53. # ========== Verbindung aufbauen ==========
  54. echo "Verbinde mit $NAME ($SSH_USER@$HOST:$SSH_PORT)..."
  55. ssh -i "$SSH_KEY" -p "$SSH_PORT" "$SSH_USER@$HOST"