sshpass ist ein gutes Werkzeug (auf keinen Fall in Produktionssystemen einsetzen) für die Übergabe von Passwörtern an ssh oder, in meinem Fall, an rsync, das sich per ssh verbinden soll.
Problem: Gute Passwörter sind nicht nur lang (vor allem aber lang), sondern haben auch möglichst viele unterschiedliche Zeichen.
Das führte bei mir im Skript zu Problemen, weil die Sonderzeichen dazu führen, dass bei Übergabe nicht das komplette Passwort übergeben wurde, der Rest als Befehl interpretiert und überhaupt…
Funktioniert nicht (Passwort ist ausgedacht):
PASSWORD=HrA5ms#M@=b=rfRQzC>qW9+$
sshpass -p $PASSWORD rsync --recursive --rsh=ssh ...
Die Lösung ist zum Glück einfach: das Passwort in einfache Anführungszeichen setzen:
PASSWORD='HrA5ms#M@=b=rfRQzC>qW9+$'
sshpass -p $PASSWORD rsync --recursive --rsh=ssh ...