From 1ef19638e68cb8f3ff9f99f5b142e6d997c2610e Mon Sep 17 00:00:00 2001 From: Stefan Mewes Date: Tue, 17 Jun 2025 19:54:14 +0200 Subject: [PATCH] Verbindung mit anderem User funktioniert --- ssh_manager.sh | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/ssh_manager.sh b/ssh_manager.sh index fff74e2..6e84b97 100755 --- a/ssh_manager.sh +++ b/ssh_manager.sh @@ -11,9 +11,7 @@ log() { } download_file() { - # Vor dem Download ggf. existierende Dateien mit Zähler löschen rm -f Homelab.mxtsessions* 2>/dev/null - if wget -q "$FILE_URL" -O "$INPUT_FILE"; then log "Datei erfolgreich heruntergeladen." else @@ -23,7 +21,7 @@ download_file() { } extract_data() { - echo "Name,Adresse / Host" > "$OUTPUT_FILE" + echo "Name,Host,Port,Benutzer" > "$OUTPUT_FILE" awk ' /^\[Bookmarks/ { in_section=1; next } /^\[/ && !/^\[Bookmarks/ { in_section=0 } @@ -32,8 +30,13 @@ extract_data() { name = parts[1] split(parts[2], details, "%") host = details[2] - gsub(/.*\\n/, "", name) - print name "," host + port = details[3] + user = details[4] + if (host != "") { + if (port == "") port = "22" + if (user == "") user = "root" + print name "," host "," port "," user + } } ' "$INPUT_FILE" >> "$OUTPUT_FILE" log "Daten extrahiert und in $OUTPUT_FILE gespeichert." @@ -42,9 +45,13 @@ extract_data() { read_server_list() { server_names=() ip_addresses=() - while IFS="," read -r name ip; do + port_numbers=() + usernames=() + while IFS="," read -r name ip port user; do server_names+=("$name") ip_addresses+=("$ip") + port_numbers+=("$port") + usernames+=("$user") done < <(tail -n +2 "$OUTPUT_FILE") log "Serverliste erfolgreich eingelesen." } @@ -53,7 +60,7 @@ show_menu() { while true; do menu_entries=() for i in "${!server_names[@]}"; do - menu_entries+=("$i" "${server_names[i]} (${ip_addresses[i]})") + menu_entries+=("$i" "${server_names[i]} (${ip_addresses[i]}:${port_numbers[i]})") done menu_entries+=("q" "Ende") @@ -67,8 +74,8 @@ show_menu() { fi index=$gui_choice - log "Verbinde zu ${server_names[index]} (${ip_addresses[index]})..." - ssh ${ip_addresses[index]} + log "Verbinde zu ${server_names[index]} (${usernames[index]}@${ip_addresses[index]}:${port_numbers[index]})..." + ssh -p "${port_numbers[index]}" "${usernames[index]}@${ip_addresses[index]}" done }