From 63de8d0f33e57dca0f405295357b52c456b93323 Mon Sep 17 00:00:00 2001 From: Siphonight Date: Thu, 5 Dec 2024 21:10:18 +0100 Subject: [PATCH] Ajout du support des mots de passes dans la configuration --- Dockerfile | 2 +- server_menu.sh | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8fea9d3..fdfbceb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,7 +52,7 @@ USER root #Preparations #Updating and installing required dependencies -RUN apk add openssh-server=9.7_p1-r4 openssh-client=9.7_p1-r4 sudo=1.9.15_p5-r0 openrc=0.54-r1 bash=5.2.26-r0 && \ +RUN apk add openssh-server=9.7_p1-r4 openssh-client=9.7_p1-r4 sudo=1.9.15_p5-r0 openrc=0.54-r1 bash=5.2.26-r0 sshpass=1.10-r0 && \ apk --no-cache add shadow=4.15.1-r0 diff --git a/server_menu.sh b/server_menu.sh index 792a91d..3bb517b 100644 --- a/server_menu.sh +++ b/server_menu.sh @@ -20,8 +20,9 @@ function main_menu () { port=$(echo "$line" | cut -d ' ' -f 2) custom_name=$(echo "$line" | cut -d ' ' -f 3) server_user=$(echo "$line" | cut -d ' ' -f 4) - server_authkey=$(echo "$line" | cut -d ' ' -f 6) - server_map[$counter]="$ip $port $server_user $server_authkey" + server_authmethod=$(echo "$line" | cut -d ' ' -f 6) + server_auth=$(echo "$line" | cut -d ' ' -f 7) + server_map[$counter]="$ip $port $server_user $server_authmethod $server_auth" echo "$counter) $custom_name - $server_user $ip:$port" counter=$((counter + 1)) done <<< "$USER_SERVERS" @@ -36,16 +37,24 @@ function main_menu () { elif [ -z "$choice" ] || [ -z "${server_map[$choice]}" ]; then echo "Sélection invalide." else + local selected_server selected_server="${server_map[$choice]}" - echo "Connexion à $selected_server..." - if [ -z "$(echo "$selected_server" | cut -d ' ' -f 4)" ]; then + echo "Connexion à $( echo "$selected_server" | cut -d " " -f -3)..." + if [ -z "$(echo "$selected_server" | cut -d ' ' -f 4)" ] && [ -f "$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 5)" ]; then ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)" - else + elif [ "$(echo "$selected_server" | cut -d ' ' -f 4)" == "key" ]; then eval "$(ssh-agent)" > /dev/null trap 'kill $SSH_AGENT_PID' EXIT - cat /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 4)" | ssh-add - > /dev/null + cat /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 5)" | ssh-add - > /dev/null ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)" ssh-add -D > /dev/null + elif [ "$(echo "$selected_server" | cut -d ' ' -f 4)" == "password" ] && [ -f /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 5)" ]; then + local ssh_password + ssh_password=$(cat /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 5)") + ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- sshpass -p "$ssh_password" ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)" + unset ssh_password + else + echo -e "Un problème de configuration a été détecté sur \nles options de connexion à l'hôte selectionné.\nVeuillez contacter votre administrateur." fi fi }