From f2aab415d094358985eb1c25212c5e0196e56c18 Mon Sep 17 00:00:00 2001 From: Christoph Date: Thu, 13 Feb 2025 11:59:34 +0100 Subject: [PATCH] rcopy.sh: renew ssh agent stuff. --- rcopy.sh | 49 ++++++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/rcopy.sh b/rcopy.sh index 1b49bef..82c6417 100755 --- a/rcopy.sh +++ b/rcopy.sh @@ -251,47 +251,30 @@ elif $remote_disk ; then fi -## - $AGENT muss (root) gehören und darf nicht beschreibbar sein -## - +# --- +# SSH agent stuff +## -- - -#if [ ! -O $AGENT ] || ! ps ax | grep ssh-agent | grep -v grep > /dev/null ; then -# killall ssh-agent > /dev/null 2> /dev/null -# rm -f $AGENT -# ssh-agent > $AGENT; . $AGENT > /dev/null ; ssh-add ${SSH_KEY} > /dev/null 2>&1 -#fi +# Kill remaining ssh-agent processes if exists # -#if [ ! -O $AGENT ]; then -# -# msg_00="\n[ Error ]: No file \"$AGENT\" for ssh-agent informations found or i'm not the owner !!" -# msg_01="\t =======================" -# msg_02="\t !! BACKUP INTERUPTED !!" -# msg_03="As user \"$USER\" do:\n\tssh-agent > $AGENT; . $AGENT; ssh-add" -# msg="${msg_00}\n\n${msg_01}\n${msg_02}\n${msg_01}\n\n${msg_03}" -# if $MANUAL ; then -# echo -e "\n$msg\n" -# else -# datum="$(date +"%d.%m.%Y")" -# subject="Backup Errors $company -- $datum" -# subject_utf8="$(echo "$subject" | iconv -t UTF8)" -# subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?=" -# echo -e "To:${admin_email}\n${content_type}\nSubject:${subject_utf8_encoded}\n${msg}\n" | /usr/sbin/sendmail -F "Errors BACKUP $company" -f $from_address $admin_email -# fi -# -# exit 1 -#fi -#. $AGENT > /dev/null 2>&1 - - -if $(${ps} aux | ${grep} -e"^${USER}" | ${grep} -q -e " ssh-agent " 2> /dev/null) ; then +if $(ps -U ${USER} -u ${USER} | ${grep} -q ssh-agent 2> /dev/null) ; then killall ssh-agent > /dev/null 2> /dev/null + unset SSH_AGENT_PID fi -eval "$(ssh-agent -s)" > /dev/null 2>&1 ; ssh-add ${SSH_KEY} > /dev/null 2>&1 +# Run SSH-Agent as background process.. +# +eval $(ssh-agent 2> /dev/null | tee ${AGENT}) > /dev/null + +# Load the SSH private key into ssh agent +# +ssh-add -q ${SSH_KEY} 2> /dev/null -if [ ! `$ps aux | $grep -e"^$USER" | $grep "$SSH_AGENT_PID" | $grep ssh-agent | awk '{print$2}'` ]; then +# Check if ssh key was loaded +# +if ! $(ps -U ${USER} -u ${USER} | $grep "$SSH_AGENT_PID" | $grep -q ssh-agent 2> /dev/null) ; then msg_00="\n[ Error ]: No Prozess for ssh-agent with Process ID \"$SSH_AGENT_PID\" found !!" msg_01="\t ======================="