ssh-connection.sh 1.9 KB

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