Convogliare lo 'sshfs password'
con <<<
a -o password_stdin
funziona su bash:
sshfs -o password_stdin [email protected]_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 [email protected]_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 [email protected]_servers_ip "mkdir -p .ssh"
-
Caricamento delle chiavi pubbliche generate sul server remoto
cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
-
Imposta le autorizzazioni sul server remoto
ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
-
Accedi
ssh [email protected]_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