Je veux configurer un travail RSync qui se connecterait via SSH.
J'ai mon ordinateur (backup @ myhost) et l'hôte distant (test @ remhost) et j'ai besoin de sauvegarder le dossier ~ / quelque chose avec tout son contenu. Le test utilisateur ssh n'a qu'un accès en lecture à tous les fichiers et dossiers du dossier ~ /. Je souhaite utiliser rsync pour copier le dossier test @ remhost: ~ / something dans le dossier backup @ myhost: ~ / bak.
À cet effet, j'utilise la commande suivante via BASH sur Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
Après avoir frappé entrer, j'obtiens ceci:
test@remhost's password:
Je tape le mot de passe et le rsync fonctionne.
Je veux faire la commande ci-dessus pour saisir automatiquement le mot de passe et le passer en tant que paramètre ou pour le saisir automatiquement et démarrer le travail.
J'ai essayé de l'exécuter rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
mais il demande toujours le mot de passe et c'est ennuyeux.
Je ne veux pas entendre parler de clés (RSA, DSA ou autre). Je veux juste une commande simple qui me connecterait et ferait le travail.
EDIT: Un scénario possible pourrait être, si l'authentification par clé publique est désactivée et que vous ne pouvez pas changer cela. Par exemple, si vous utilisez OpenSSH, vous aurez besoin des privilèges root sur le serveur pour éditer le fichier sshd_config
et l'ajouter PubkeyAuthentication yes
.
EDIT: C'est ce qui a finalement fonctionné pour moi:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Veuillez noter que cette méthode n'est pas considérée comme sécurisée car elle envoie le mot de passe en texte brut et elle est vulnérable aux attaques de l'homme du milieu. Il est conseillé d'utiliser la clé d'authentification pour une sécurité renforcée.
Réponses:
essayez peut-être sshpass .
semble assez simple à utiliser ... il est également disponible via apt.
Je cherchais quelque chose comme ça avant de copier mes clés, mais comme j'ai déjà ma clé partout où j'ai besoin, je n'ai pas pris le temps d'essayer.
Notez cependant l'avertissement sur ce tutoriel concernant la visibilité de votre mot de passe.
Pour tous ceux qui doivent le faire:
la source
Une variante de votre solution, plus sécurisée contre les menaces de sécurité, consiste à stocker votre mot de passe dans un fichier avec des autorisations strictes et à utiliser l'
-f
indicateur avecshpass
:La différence est que la liste des processus en cours n'affichera pas votre mot de passe dans la ligne de commande, il affichera désormais uniquement le chemin d'accès au fichier dans lequel se trouve votre mot de passe.
la source
Je ne peux imaginer aucune situation où l'authentification par clé publique sans phrase de passe ne serait pas la meilleure solution pour les connexions ssh / rsync automatisées.
Quoi
expect
qu'il en soit, cela devrait être un moyen de réaliser ce que vous voulez faire. Vous ne pouvez pas diriger le mot de passe vers ssh, mais c'est quelque chose de très similaire. Comment faire, est répondu ici à stackoverflow .la source
J'ai trouvé que sshpass fonctionne, mais puisque le termanal dit que
SSHPASS read: Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':
vous devez l'exécuter quelque chose comme ceci:Où
-P
spécifie quelle invite rechercher, j'ai trouvé cela en exécutantsshpass -v
et en découvrant sa recherche de la phrasepassword
qui n'est pas là.la source
la première chose est de faire ssh sans
passowrd/bypass
la connexion par mot de passe, comme vous pouvez le voir, nous pouvons utiliserssh-copy-id -i ./ssh/id_rsa.pub
pour cibler la machine.Après ce test, la machine peut être distante par ssh sans mot de passe, puis rsync sur le chemin suivant de la machine locale à la
target/server
machinela source