From e76f12862d9d023448829497251f8fc37e460eff Mon Sep 17 00:00:00 2001 From: StefanMewes Date: Thu, 9 Jan 2025 15:59:42 +0000 Subject: [PATCH] sshmanager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Auswahlmenü für SSH Verbindung --- ssh_manager.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 ssh_manager.sh diff --git a/ssh_manager.sh b/ssh_manager.sh new file mode 100644 index 0000000..ddc5d49 --- /dev/null +++ b/ssh_manager.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Datei mit Servernamen und IP-Adressen +server_file="serverliste.csv" + +# Arrays für Servernamen und IP-Adressen initialisieren +server_names=() +ip_addresses=() + +# Datei einlesen und Arrays füllen +while IFS="," read -r name ip; do + server_names+=("$name") + ip_addresses+=("$ip") +done < <(tail -n +2 "$server_file") + +# Hauptmenü in einer Schleife anzeigen +while true; do + # Erzeuge die Einträge für das Whiptail-Menü + menu_entries=() + for i in "${!server_names[@]}"; do + menu_entries+=("$i" "${server_names[i]} (${ip_addresses[i]})") + done + menu_entries+=("q" "Ende") + + # Zeige das Whiptail-Menü an + gui_choice=$(whiptail --title "Serverauswahl" --menu "Wähle einen Server aus:" 20 78 10 "${menu_entries[@]}" 3>&1 1>&2 2>&3) + + # Überprüfe die Auswahl + if [[ $? -ne 0 || "$gui_choice" == "q" ]]; then + echo "Programm beendet." + exit 0 + fi + + # Verarbeite die Serverauswahl + index=$gui_choice + echo "Verbinde zu ${server_names[index]} (${ip_addresses[index]})..." + ssh ${ip_addresses[index]} + +done