Ich hatte ein ähnliches Problem beim Aufruf von ssh-agent -s in einem Skript, das von der Option -e in rsync aufgerufen wurde.
Im Skript eval $(ssh-agent -s) werden die Umgebungsvariablen für den nächsten Aufruf nicht beibehalten.
rsync -e 'source ssh-check-agent.sh -p 8022' funktioniert nicht, daher habe ich einen Workaround erstellt. Im Skript habe ich die Variablen nach dem Aufruf von ssh-agent in einer temporären Datei gespeichert:
echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK;" > /tmp/ssh-check-agent.vars
echo "export SSH_AGENT_PID=$SSH_AGENT_PID;" >> /tmp/ssh-check-agent.vars
Und danach rufe ich im Skript, das rsync aufruft (backup.sh), folgendes auf:
source /tmp/ssh-check-agent.vars
Das Problem ist, dass das Skript, das rsync aufruft, über source aufgerufen werden muss (source backup.sh).
Ich weiß, dass das nicht die Frage ist (ich verwende zweimal source), aber ich füge es hier ein, falls jemand ein ähnliches Problem mit rsync hat.