Ajout du support des mots de passes dans la configuration

This commit is contained in:
Siphonight 2024-12-05 21:10:18 +01:00
parent c30c55a463
commit 63de8d0f33
2 changed files with 16 additions and 7 deletions

View File

@ -52,7 +52,7 @@ USER root
#Preparations #Preparations
#Updating and installing required dependencies #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 apk --no-cache add shadow=4.15.1-r0

View File

@ -20,8 +20,9 @@ function main_menu () {
port=$(echo "$line" | cut -d ' ' -f 2) port=$(echo "$line" | cut -d ' ' -f 2)
custom_name=$(echo "$line" | cut -d ' ' -f 3) custom_name=$(echo "$line" | cut -d ' ' -f 3)
server_user=$(echo "$line" | cut -d ' ' -f 4) server_user=$(echo "$line" | cut -d ' ' -f 4)
server_authkey=$(echo "$line" | cut -d ' ' -f 6) server_authmethod=$(echo "$line" | cut -d ' ' -f 6)
server_map[$counter]="$ip $port $server_user $server_authkey" 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" echo "$counter) $custom_name - $server_user $ip:$port"
counter=$((counter + 1)) counter=$((counter + 1))
done <<< "$USER_SERVERS" done <<< "$USER_SERVERS"
@ -36,16 +37,24 @@ function main_menu () {
elif [ -z "$choice" ] || [ -z "${server_map[$choice]}" ]; then elif [ -z "$choice" ] || [ -z "${server_map[$choice]}" ]; then
echo "Sélection invalide." echo "Sélection invalide."
else else
local selected_server
selected_server="${server_map[$choice]}" selected_server="${server_map[$choice]}"
echo "Connexion à $selected_server..." echo "Connexion à $( echo "$selected_server" | cut -d " " -f -3)..."
if [ -z "$(echo "$selected_server" | cut -d ' ' -f 4)" ]; then 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)" 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 eval "$(ssh-agent)" > /dev/null
trap 'kill $SSH_AGENT_PID' EXIT 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)" 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 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
fi fi
} }