----------------------------------------------
#! /bin/bash
scp /home/carl/fich1 root@192.168.1.169:/root/fich1
wget -v --ftp-user=root --ftp-password=A10th3** ftp://192.168.1.169:/fich1
ssh 192.168.1.169 "rm -v fich1; pwd; exit"
----------------------------------------------------
le script ci-dessus me permet dans l'ordre de :
1. copier un fichier dans un machine distante (scp)
2. télécharger ce fichier depuis la machine distante (wget)
3. détruire la copie sur la machine distante après téléchargement (via ssh)
je voudrait le faire exécuter par un cron ; je voudrais ne plus avoir à renseigner le password lors de l'exécution de "scp" et "ssh"
merci de me donner un coup de main
# ssh-agent et clé publique
Posté par Ellendhel (site web personnel) . Évalué à 6.
Pour cela il faut créer un couple de clé privée / clé publique et utiliser ssh-agent pour automatiser le tout :
http://doc.ubuntu-fr.org/ssh#utiliser_le_ssh-agent
http://mathieu-androz.developpez.com/articles/linux/ssh/#LIV(...)
Le point restant est que si une phrase secrète ("passphrase") est utilisée avec la clé secrète, il faudra l'indiquer au lancement de ssh-agent.
On peut définir une clé secrète dans phrase secrète (pour être sûr que les tâches s'executent correctement même après un redémarrage inopiné par exemple), mais dans ce cas il faut s'assurer qu'elle ne soit pas utilisable par un tiers.
[^] # Re: ssh-agent et clé publique
Posté par JJD . Évalué à 4.
La solution proposée, avec dépôt d'une clé publique sur le serveur, est certainement la meilleure. Cependant, si pour une raison quelconque ce n'est pas possible, il existe d'autres méthodes :
- utilisation de expect pour simuler l'entrée interactive du mot de passe
- utilisation d'un autre client ssh/sftp pour le transfert du fichier puis son effacement.
Tu peux, par exemple, utiliser un client comme lftp (http://ftp.yar.ru/lftp/) :
lftp -e 'put /home/carl/fich1; exit' -u root,A10th3** 192.168.1.169
D'ailleurs, lftp peut aussi gérer le FTP, supprimer ton fichier ou afficher le répertoire courant (sn SFTP ou FTP).
Puisque je suis en train de faire des commentaires, tu devrais aussi envisager la possibilité de mettre tes mots de passe (que ce soit pour ftp, wget, lftp ou d'autres) dans le fichier ~/.netrc : ça évite de faire traîner des mots de passe en clair dans des scripts et, surtout, de les utiliser dans les commandes appelées. N'oublie pas que, dans ce cas, le mot de passe peut être visible par tous les utilisateurs connectés sur le machine avec un simple ps...
A+
JJD
[^] # Re: ssh-agent et clé publique
Posté par totof2000 . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.