Tuyauterie du 'sshfs password'
avec <<<
à -o password_stdin
fonctionne sur bash :
sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'
Selon le manuel, il y a une option -o password_stdin
qui pourrait permettre de lire le mot de passe à partir de l'entrée standard, qui peut probablement être une redirection. Je ne l'ai jamais utilisé, donc je spécule.
Cela dit, je déconseille fortement une telle solution qui est par nature peu sûre.
ssh
fonctionne très bien avec un système de clés privées/publiques. C'est simple et sécurisé. Inutile de saisir un mot de passe ou de l'écrire en clair dans un script shell. Poussez simplement votre clé publique sur le serveur et vous pourrez vous connecter immédiatement.
-o password_stdin
ne semblent pas fonctionner sur tous les systèmes, par exemple freeBSD. etc.
Vous pouvez également utiliser expect
Interprète, cela devrait fonctionner avec sshfsand devrait faire l'affaire.
Une autre solution serait sshpass
, par exemple, disons que vous sauvegardez le répertoire /var/www
Sauvegarde :
name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www
téléchargement du fichier de sauvegarde sur le serveur de sauvegarde
sshpass -p "your_password" scp -r [email protected]_ip:/home/ /backup/$name
Il téléchargera donc le répertoire avec la sauvegarde d'aujourd'hui
Mais encore, comme il a été dit plus haut, le meilleur moyen (sûr et simple) serait d'utiliser la paire de clés ssh
Le seul inconvénient serait que vous deviez passer par le processus de génération de clé une fois sur chaque serveur que vous devez coupler, mais c'est mieux que de conserver un mot de passe au format texte brut sur tous les serveurs que vous souhaitez sauvegarder :),
Générer une paire de clés de la bonne manière
-
Sur le serveur local
ssh-keygen -t rsa
-
Sur serveur distant
ssh [email protected]_servers_ip "mkdir -p .ssh"
-
Téléchargement des clés publiques générées sur le serveur distant
cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
-
Définir les autorisations sur le serveur distant
ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
-
Connexion
ssh [email protected]_servers_ip
-
Activation du protocole SSH v2
décommentez "Protocol 2" dans /etc/ssh/sshd_config
-
activation de l'autorisation de clé publique dans sshd
Décommentez "PubkeyAuthentication yes" dans /etc/ssh/sshd_config
-
Si StrictModes est défini sur oui dans /etc/ssh/sshd_config alors
restorecon -Rv ~/.ssh