ssh-connection.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. )
  21. # ========== Zielauswahl mit Nummern ==========
  22. echo "Verfügbare SSH-Ziele:"
  23. i=1
  24. for entry in "${TARGET_LIST[@]}"; do
  25. IFS='|' read -r NAME HOST USER PORT KEY <<< "$entry"
  26. echo "$i) $NAME"
  27. ((i++))
  28. done
  29. read -p "Nummer eingeben: " CHOICE
  30. # ========== Auswahl prüfen ==========
  31. if ! [[ "$CHOICE" =~ ^[0-9]+$ ]] || ((CHOICE < 1 || CHOICE > ${#TARGET_LIST[@]})); then
  32. echo "Ungültige Auswahl!"
  33. exit 1
  34. fi
  35. TARGET="${TARGET_LIST[CHOICE-1]}"
  36. # ========== Konfiguration auflösen ==========
  37. IFS='|' read -r NAME HOST USER PORT KEY <<< "$TARGET"
  38. SSH_USER="${USER:-$DEFAULT_SSH_USER}"
  39. SSH_PORT="${PORT:-$DEFAULT_SSH_PORT}"
  40. SSH_KEY="${KEY:-$DEFAULT_SSH_KEY}"
  41. # ========== Berechtigungen prüfen ==========
  42. if [[ ! -f "$SSH_KEY" ]]; then
  43. echo "Fehler: SSH-Key '$SSH_KEY' existiert nicht."
  44. exit 1
  45. fi
  46. if [[ $(stat -c "%a" "$SSH_KEY") != "600" ]]; then
  47. echo "Achtung: Berechtigungen für $SSH_KEY werden auf 600 gesetzt..."
  48. chmod 600 "$SSH_KEY" || { echo "Fehler beim Setzen der Berechtigungen."; exit 1; }
  49. fi
  50. # ========== Verbindung aufbauen ==========
  51. echo "Verbinde mit $NAME ($SSH_USER@$HOST:$SSH_PORT)..."
  52. ssh -i "$SSH_KEY" -p "$SSH_PORT" "$SSH_USER@$HOST"