delphin2 Posté(e) le 26 mars 2008 Partager Posté(e) le 26 mars 2008 Bonjour, En fait j'ai deux ordinateurs en réseau où je dois copier un dossier de partage de l'un à l'autre par scp. Le poste 1 est un serveur et le poste 2 est un client. Je possède un gros dossier de partage sur le poste 1 (/media/partage) qui a été copié sur le poste 2(media/partage). Si le dossier de partage du poste 1 change (suppression de fichiers....) alors je dois copier le dossier du serveur (poste 1) alors changé à la place du même dossier sur le poste 2. Mais pour cela, je dois comparer continuellement ces dossiers. Ce que j'ai fais en premier lieu, c'est de copier le dossier du poste 2 à la racine du poste 2 (pour ne pas écraser le dossier de partage du poste 2 (/media/partage)). Remarque : pour le scp j'étais obligé de me trouver sur le poste 2. Le problème se situe après. Pour comparer les 2 dossiers, je dois donc maintenant me connecter sur le poste 1. Mais le ssh me bloque. Le script ne continue pas et je ne peux donc pas comparer les 2 dossiers. Le ssh est bloquant dans un script. Pourquoi? Merci d'avance pour vos réponses. Cordialement Pour le logiciel libre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 26 mars 2008 Partager Posté(e) le 26 mars 2008 Le ssh est bloquant dans un script. Pourquoi? Sûrement à cause d'une erreur à la con... normalement, il ne devrait y avoir aucun problème pour lancer un sous-shell ssh dans le shell de ton script Euh, sinon, pourquoi tu ne fais pas avec rsync (quitte à l'encapsuler dans ssh), pour faire ta synchro ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 26 mars 2008 Auteur Partager Posté(e) le 26 mars 2008 Le ssh est bloquant dans un script. Pourquoi? Sûrement à cause d'une erreur à la con... normalement, il ne devrait y avoir aucun problème pour lancer un sous-shell ssh dans le shell de ton script Euh, sinon, pourquoi tu ne fais pas avec rsync (quitte à l'encapsuler dans ssh), pour faire ta synchro ? Ben en fait je crois que tu as raison. Au départ je n'avais pas pensé à Rsync mais comme j'avais déjà commencé ben je ne l'ai pas utilisé. Je vais l'essayer et je donne des nouvelles. En tout cas merci Au fait comment tu fais avec Rsync car je dois d'abord faire ma comparaison de dossiers? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dark26 Posté(e) le 26 mars 2008 Partager Posté(e) le 26 mars 2008 +1 pour rsync .... et sinon pour le ssh , si il te demande le mot de passe dans le script c'est mort ... sauf si il y a eu échange de clefs.. Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 26 mars 2008 Auteur Partager Posté(e) le 26 mars 2008 +1 pour rsync ....et sinon pour le ssh , si il te demande le mot de passe dans le script c'est mort ... sauf si il y a eu échange de clefs.. Voilà mon autre problème l'échange de clés se fait par autorized keys dans .ssh mais cela ne marche pas lol Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 26 mars 2008 Partager Posté(e) le 26 mars 2008 et sinon pour le ssh , si il te demande le mot de passe dans le script c'est mort ... Bah non... ça marche, même avec une authentification par mot de passe ... à moins d'utiliser un shell non-interactif, m'enfin, delphin2 a l'air de faire à la mimine, pour l'instant... Voilà mon autre problème l'échange de clés se fait par autorized keys dans .ssh mais cela ne marche pas lol Et un ssh à la mimine, tout seul, juste pour entrer dans le shell distant, ça marche ? Tu fais comment ? Tu utilises une clé privée dans ~/.ssh/id_rsa, ailleurs, ou tu utilises un agent ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 26 mars 2008 Partager Posté(e) le 26 mars 2008 et sinon pour le ssh , si il te demande le mot de passe dans le script c'est mort ... Bah non... ça marche, même avec une authentification par mot de passe ... à moins d'utiliser un shell non-interactif, m'enfin, delphin2 a l'air de faire à la mimine, pour l'instant... Rhoooo j'ai jamais su le faire ! Comment tu fais ? Ca m'interesse Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 26 mars 2008 Partager Posté(e) le 26 mars 2008 [Rhoooo j'ai jamais su le faire !Comment tu fais ? Ca m'interesse Bah... je fais, c'est tout Si je mets "ssh aefron@soumise" dans un script, et que j'exécute le script à la mimine dans un shell (genre "./test"), si le serveur autorise la connexion par mot de passe, le sous-shell lancé par le script me demande le mot de passe (sinon, il m'envoie chier avec un "public key needed", si celles du /etc/ssh ne sont pas bonnes, ou si ce n'est pas dans un agent accessible), et lance un sous-sous-shell de la machine distante... ... par contre, si le script est exécuté par un cron ou autre spwaner de shell non interactif, bah, non, là, ça se plante comme une loutre bourrée... Sinon, on peut se servir de sshpass pour faire une connexion via mot de passe non interactivement (genre, en stockant le mot de passe en hard quelque part), mais, là, c'est de l'ordre du maestro-goretto... autant faire avec de la clé privée sans mot de passe, à ce stade... Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 26 mars 2008 Auteur Partager Posté(e) le 26 mars 2008 et sinon pour le ssh , si il te demande le mot de passe dans le script c'est mort ... Bah non... ça marche, même avec une authentification par mot de passe ... à moins d'utiliser un shell non-interactif, m'enfin, delphin2 a l'air de faire à la mimine, pour l'instant... Voilà mon autre problème l'échange de clés se fait par autorized keys dans .ssh mais cela ne marche pas lol Et un ssh à la mimine, tout seul, juste pour entrer dans le shell distant, ça marche ? Tu fais comment ? Tu utilises une clé privée dans ~/.ssh/id_rsa, ailleurs, ou tu utilises un agent ? Par rsa oui ca doit marcher j'ai du me croûter quelque part je testerais plus tard car là je n'ai pas le temps je vous tiendrais au courant Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dark26 Posté(e) le 26 mars 2008 Partager Posté(e) le 26 mars 2008 Tu utilises une clé privée dans ~/.ssh/id_rsa, ailleurs ouis un truc comme ça que je faissais et qu'il faut que je reparamètre sur mon htpc... un simple ssh nom_de_la bécane suifi pour se logger. Très pratique pour lancer les scripts à distance pour changer le canal de la TNT Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 3 avril 2008 Auteur Partager Posté(e) le 3 avril 2008 Merci les gars pour tous ces renseignements Effectivement, pour l'échange de clés rsa ça marche. Je le fais maintenant avec RSync, par contre le truc bizarre est que quand je lance RSync avec le ssh encapsulé dans un terminal, le mot de passe ne m'est pas demandé -> normal car échange de clés. Par contre quand je l'éxécute dans un script, cela me demande le mot de passe du client sur lequel je dois me connecter. Commande tapée : rsync -avz -e ssh user@ipClient:dirTosave dirDest Merci pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dark26 Posté(e) le 3 avril 2008 Partager Posté(e) le 3 avril 2008 le partage de clé se fait pour un utilisateur x. ( il me semble ). si tu lances le script avec l'utilisateur y, ça ne fonctionnera pas sans demander le mot de passe... style ça dépend si tu le lance en root ou en user... je me trompe peut être... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 3 avril 2008 Partager Posté(e) le 3 avril 2008 Ca dépend surtout d'où sont les clés... Si les clés sont dans ~/.ssh, la passphrase de la clé sera demandée à chaque utilisation, s'il y en a une... si les clés sont dans un agent, la passphrase ne sera demandée qu'à l'insertion dans l'agent, s'il y en a une... ... maintenant, certes, par défaut, root n'ira pas chercher les clés dans /home/delphin2/.ssh (sauf à passer par un truc qui maintient la valeur de $HOME, comme sudo)... pas plus qu'il ne bénéficiera de l'agent d'un autre utilisateur (en tout cas, pas sans trifouiller)... ... et si le serveur ssh autorise à la fois la connexion par clé RSA et par mot de passe UNIX, bah, faute de grives... Donc, il nous faudrait plus de renseignements sur la manière dont est stockée ta clé (agent, fichier, ...), et la manière dont tu t'y prends pour lancer le script (quel utilisateur ? )... Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 3 avril 2008 Auteur Partager Posté(e) le 3 avril 2008 Ca dépend surtout d'où sont les clés...Si les clés sont dans ~/.ssh, la passphrase de la clé sera demandée à chaque utilisation, s'il y en a une... si les clés sont dans un agent, la passphrase ne sera demandée qu'à l'insertion dans l'agent, s'il y en a une... ... maintenant, certes, par défaut, root n'ira pas chercher les clés dans /home/delphin2/.ssh (sauf à passer par un truc qui maintient la valeur de $HOME, comme sudo)... pas plus qu'il ne bénéficiera de l'agent d'un autre utilisateur (en tout cas, pas sans trifouiller)... ... et si le serveur ssh autorise à la fois la connexion par clé RSA et par mot de passe UNIX, bah, faute de grives... Donc, il nous faudrait plus de renseignements sur la manière dont est stockée ta clé (agent, fichier, ...), et la manière dont tu t'y prends pour lancer le script (quel utilisateur ? )... En fait je lance le script en root depuis le serveur pour sauvegarder un dossier qui se situe sur un poste client. Ce que je ne comprends pas, c'est que le serveur connait la clé du client et inversement et donc ca devrait marcher. Cela marche par clé rsa en fait J'ai mis en place cette solution : http://www.generation-linux.fr/index.php?2...de-mot-de-passe Et ca ne marche pas quand je lance le script, un mot de passe est demandé Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 3 avril 2008 Partager Posté(e) le 3 avril 2008 J'ai mis en place cette solution : http://www.generation-linux.fr/index.php?2...de-mot-de-passeEt ca ne marche pas quand je lance le script, un mot de passe est demandé OK. Et donc, le mot de passe qu'il te demande, c'est le mot de passe UNIX du compte sur lequel tu te connectes à distance ? Ce n'est pas une passphrase de clé ? Bon, a priori, pas besoin de passphrase à la clé, vu que c'est a priori pour faire de la synchro automatique... donc, ça doit être le serveur SSH qui finit par demander une authentification par mot de passe UNIX, puisque ne doit lui est fournie aucune authentification par clé publique/privée... ... donc, le problème doit se situer au niveau de l'emplacement de la clé privée... tu dis que tu as suivi le tuto donné en lien, mais le ssh-keygen, vu que tu utilises la clé en tant que root (pas forcément génial), tu l'as bien fait en tant que root ? La clé est-elle bien dans /root/.ssh/id_rsa ? Sinon, il faut que tu l'y copies (probablement en changeant les droits, au passage)... voire mieux : créer un compte pour la synchro via rsync et mettre la clé rsa dans son ~/.ssh ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 3 avril 2008 Auteur Partager Posté(e) le 3 avril 2008 En fait je lance le script en root ... Pardon je rectifie mon erreur Je lance la commande de rsync en tant qu'utilisateur dans un terminal en sudo ca marche et donc pas de demande de mot de passe là tout va bien Par contre , le script dans lequel il y a la meme commande rsync et que je lance en sudo me demande le mot de passe unix de la machine sue laquelle je me connecte en ssh Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 3 avril 2008 Partager Posté(e) le 3 avril 2008 Il y a peut-être une couille au niveau des paths, quand ça se fait par sudo... Tu peux essayer en spécifiant l'emplacement de la clé RSA manuellement avec l'option "-i" de ssh : sync -avz -e "ssh -i fileRSA" user@ipClient:dirTosave dirDest Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 3 avril 2008 Auteur Partager Posté(e) le 3 avril 2008 Il y a peut-être une couille au niveau des paths, quand ça se fait par sudo...Tu peux essayer en spécifiant l'emplacement de la clé RSA manuellement avec l'option "-i" de ssh : sync -avz -e "ssh -i fileRSA" user@ipClient:dirTosave dirDest eh ben chapeau après plusieurs galères tu as la réponse à ma question, ca marche parfaitement Une histoire de guillemets fallait trouver mais surtout l'histoire du chemin de la clé rentrée manuellement Merci beaucoup et des gars comme toi sont indispensables dans les forums Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 3 avril 2008 Partager Posté(e) le 3 avril 2008 Je prends le truc en vol mais pour faire de la synchro via SSH, y'a unison qui est pas mal pour un usage basique http://fr.wikipedia.org/wiki/Unison_(logiciel) Lien vers le commentaire Partager sur d’autres sites More sharing options...
delphin2 Posté(e) le 4 avril 2008 Auteur Partager Posté(e) le 4 avril 2008 Je prends le truc en vol mais pour faire de la synchro via SSH, y'a unison qui est pas mal pour un usage basiquehttp://fr.wikipedia.org/wiki/Unison_(logiciel) Merci à toi aussi je testerai aussi SUJET à locker problème résolu Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.