Convogliare lo 'sshfs password' con <<< a -o password_stdin funziona su bash:
sshfs -o password_stdin example@unixlinux.online_ip:/home /mnt/backup <<< 'sshfs password'
Secondo il manuale, c'è un'opzione -o password_stdin che potrebbe consentire di leggere la password dall'input standard, che probabilmente può essere un reindirizzamento. Non l'ho mai usato, quindi sto ipotizzando.
Detto questo, sconsiglio vivamente una soluzione del genere che è intrinsecamente insicura.
ssh funziona molto bene con un sistema di chiavi private/pubbliche. È semplice e sicuro. Non è necessario inserire una password o scriverla in chiaro in uno script di shell. Basta spingere la tua chiave pubblica sul server e puoi connetterti immediatamente.
-o password_stdin non sembrano funzionare su tutti i sistemi, ad esempio freeBSD. eccetera.
Puoi anche usare expect Interprete, dovrebbe funzionare con sshfs e dovrebbe funzionare.
Un'altra soluzione sarebbe sshpass , ad esempio, diciamo che stai eseguendo il backup della directory /var/www
Backup:
name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www
caricamento del file di backup sul server di backup
sshpass -p "your_password" scp -r example@unixlinux.online_ip:/home/ /backup/$name
Quindi caricherà la directory con il backup di oggi
Ma tuttavia, come è stato detto più in alto, il modo migliore (sicuro e semplice) sarebbe usare la coppia di chiavi ssh
L'unico inconveniente sarebbe che devi eseguire il processo di generazione della chiave una volta su ogni server che devi accoppiare, ma è meglio che mantenere una password in formato di testo normale su tutti i server di cui desideri eseguire il backup :),
Generare una coppia di chiavi nel modo corretto
-
Sul server locale
ssh-keygen -t rsa -
Sul server remoto
ssh example@unixlinux.online_servers_ip "mkdir -p .ssh" -
Caricamento delle chiavi pubbliche generate sul server remoto
cat ~/.ssh/id_rsa.pub | ssh example@unixlinux.online_servers_ip "cat >> ~/.ssh/authorized_keys" -
Imposta le autorizzazioni sul server remoto
ssh example@unixlinux.online_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys" -
Accedi
ssh example@unixlinux.online_servers_ip -
Abilitazione del protocollo SSH v2
decommenta "Protocollo 2" in /etc/ssh/sshd_config
-
abilitare l'autorizzazione della chiave pubblica in sshd
rimuovere il commento da "PubkeyAuthentication yes" in /etc/ssh/sshd_config
-
Se StrictModes è impostato su yes in /etc/ssh/sshd_config allora
restorecon -Rv ~/.ssh