Je crée un petit script de sauvegarde en utilisant sshfs
:
sshfs backup_user@target_ip:/home /mnt/backup
Existe-t-il un moyen d'inclure le mot de passe dans cette commande?
Ou existe-t-il une autre solution de transfert de fichiers où le mot de passe de connexion peut être inclus autre que FTP / SFTP?
Réponses:
-o password_stdin
ne semblent pas fonctionner sur tous les systèmes, par exemple freeBSD. etc.Vous pouvez également utiliser
expect
Interpreter, il devrait fonctionner avec sshfs et devrait faire l'affaire.Une autre solution serait
sshpass
, par exemple, de dire que vous sauvegardez le répertoire / var / wwwSauvegarde:
téléchargement du fichier de sauvegarde sur le serveur de sauvegarde
Donc, il téléchargera le répertoire avec la sauvegarde d'aujourd'hui.
Mais , 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 devez suivre le processus de génération de clés une fois sur chaque serveur vous devez vous associer, mais il vaut 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
Sur un serveur distant
Téléchargement des clés publiques générées sur le serveur distant
Définir les autorisations sur le serveur distant
S'identifier
Activation du protocole SSH v2
activation de l'autorisation de clé publique dans sshd
Si StrictModes est défini sur yes dans / etc / ssh / sshd_config,
la source
Selon le manuel, il existe 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 intrinsèquement précaire.
ssh
fonctionne très bien avec un système de clés privées / publiques. C'est simple et sécurisé. Pas besoin d'entrer un mot de passe ou de l'écrire en clair dans un script shell. Appuyez simplement sur votre clé publique sur le serveur et vous pouvez vous connecter immédiatement.la source
printf "my_password\n" | sshfs username@hostname:/remote_fs $HOME/local_dir
-o password_stdin
option.printf "my_password\n" | sshfs -o password_stdin user@hostname:/ $HOME/local_dir
PS Je suis sur Debian Buster PPS Cela fonctionne, mais demande un mot de passe:sshfs -o password_stdin user@hostname:/ $HOME/local_dir
Tuyauter
"sshfs password"
avec<<<
avec-o password_stdin
fonctionne sur bash:la source
L'option "-o password_stdin" vous permet de diriger votre mot de passe.
Cela dit, les clés sont une meilleure option, sauf si votre fournisseur de services ne vous autorise pas à les utiliser pour sftp. (Il s'agit de l'un des échecs notables de WP Engine.)
la source
Script de montage:
Démonter:
la source
une chose à garder à l'esprit est que si vous utilisez l'
-o password_stdin
option, elle peut sembler ne pas fonctionner car sshfs vous demandera de vous connecter ou non à l'hôte (si c'est la première fois que vous vous connectez à elle et qu'elle n'est pas ajoutée au fichier d'hôtes connu). Si vous l'exécutez dans un lot, vous ne verrez jamais sshfs demander. Les solutions de contournement pour éviter cela sont les suivantes:-o StrictHostKeyChecking=no
option à sshfs oula source
Script automatique pour connecter sftp avec sshfs
la source