Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/07/2011, 13h23   #1
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
Par défaut Configuration de rsync

Jusqu'à maintenant, j'utilise rsync comme suit :

A - Sous Ubuntu (Synchronisation avec un serveur distant debian)
Code :
rsync -e ssh -ova root@serveurdistant:/source/* /cible/
B - Sous windows (Synchronisation locale)
Code :
rsync -e ssh -av --size-only --chmod=ugo=rwX "/cygdrive/source/" "/cygdrive/cible/"
Je n'ai modifié, sur aucune machine, le fichier rsyncd.conf ni la propriété daemon.
Pourtant, tout marche.

Maitenant que j'essaie d'améliorer mes synchronisations, je suis confronté à deux problèmes :

a) Si j'utilise --password-file dans ma synchro A (lancée sous linux), j'ai une erreur m'indiquant que cette option n'est possible que pour accéder à un daemon.

b) Si, dans ma synchronisation B (lancée sous windows), je choisis comme cible root@serveurdistant:/cible je récolte un "Could not create directory /home/user/.ssh".

J'ai consulté depuis plusieurs jours de nombreux tutos de qualité, j'ai tenté de les comprendre et d'en tenir compte, mais je passe certainement à côté de quelque chose.

Je me demande même maintenant comment ma synchonisation A peut marcher alors que je n'ai rien paramétré.
- est-ce le fait d'utiliser root ?
- pourquoi le fait d'utiliser "--password-file" me dit qu'il ne s'agit pas d'un daemon alors que j'y accède sans problème sans cette option ?

Merci pour toute aide, et d'avoir pris le temps de me lire.

Phil
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 02/07/2011, 13h33   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 737
Points : 2 737
rsync utilise soit la connection ssh, soit se connecte à un daemon rsyncd sur la machine destination.

Comme vous spécifiez "-e ssh", l'option password-file n'a pas d'usage d'où le message d'erreur.

Vous pouvez modifier rsyncd.conf : tant que le daemon rsyncd n'est pas lancé sur la machine destination çà ne changera strictement rien, puisque que lui seul en tient compte.
Et comme vous n'en avez pas besoin de rsyncd sur la machine pour faire "rsync -e ssh"… çà fonctionne comme vous l'avez constaté.


Et votre problème sous Windows doit venir que rsync ne peut créer sur le volume assigné à Cygwin le dossier en question.
(Vous êtes root sur le serveur distant, pas sur la machine locale…)
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 02/07/2011, 13h33   #3
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Extrait de man "rsync" :

Code :
1
2
3
4
5
6
7
8
       --password-file
              Cette  option vous permet de fournir un mot de passe dans un
              fichier pour accéder à un démon rsync distant. Notez que cette
              option est utile uniquement pour accéder à un démon rsync en 
              utilisant le transport interne, pas lors de l'utilisation d'un shell 
              distant comme transport. Le fichier ne doit pas être  lisible par 
              tout le monde. Il doit contenir juste le mot de passe sur une ligne 
              seule.
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/07/2011, 16h02   #4
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
Merci pour vos réponses.

Donc, si je comprends bien :

a) un appel rsync à travers une connection ssh ne fait pas appel à un daemon rsync et ne nécessite donc pas que ce daemon soit activé sur le serveur distant.
Mais alors, comment rsync est il lancé ?
b) le paramétrage dans rsyncd.conf ne sert qu'en cas d'appel interne au daemon rsync et n'est pas utilisé en cas d'appel via ssh.

c) Dans le cas d'un appel rsync en ssh de windows vers un serveur distant, rsync a besoin d'accéder au repertoire /home/user/.ssh
- pourquoi cela n'est-il pas le cas si je remplace la cible distante par une cible locale ?
- rsync cherche-t-il le répertoire /home/user/.ssh sur le poste appelant ? (à noter que le nom d'user qui apparaît dans le message d'erreur est celui de l'utilisateur windows, donc de l'utilisateur appelant)
- si oui, où créer ce répertoire ? J'ai l'impression que cygdrive pointe sur la racine car c:\ est pointé par /cygdrive/c. Comment créer sous windows /home/user/.ssh ?
Merci encore,

Phil
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/07/2011, 09h39   #5
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par Pgs Voir le message
a) un appel rsync à travers une connection ssh ne fait pas appel à un daemon rsync et ne nécessite donc pas que ce daemon soit activé sur le serveur distant.
Tout a fait.

Citation:
Mais alors, comment rsync est il lancé ?
En tant que commande tout simplement.

Citation:
b) le paramétrage dans rsyncd.conf ne sert qu'en cas d'appel interne au daemon rsync et n'est pas utilisé en cas d'appel via ssh.
Le paramétrage ne sert que si tu as l'intention d'utiliser un serveur "rsync".

Citation:
c) Dans le cas d'un appel rsync en ssh de windows vers un serveur distant, rsync a besoin d'accéder au repertoire /home/user/.ssh
Non, ce n'est pas "rsync", mais "ssh" qui en a besoin.

Citation:
- pourquoi cela n'est-il pas le cas si je remplace la cible distante par une cible locale ?
Parce que localement "rsync" se comporte comme la commande "cp" en opposition à "scp" et n'a pas besoin d'authentification.

Citation:
- rsync cherche-t-il le répertoire /home/user/.ssh sur le poste appelant ? (à noter que le nom d'user qui apparaît dans le message d'erreur est celui de l'utilisateur windows, donc de l'utilisateur appelant)
- si oui, où créer ce répertoire ? J'ai l'impression que cygdrive pointe sur la racine car c:\ est pointé par /cygdrive/c. Comment créer sous windows /home/user/.ssh ?
Non, "rsync" ne recherche pas le ".ssh" ça c'est l'affaire de "ssh". Par contre la recherche s'effectue sur le serveur.
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 11h08   #6
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
Merci pour tes réponses claires.

Mais je ne comprends pas ça :
- mon user local (windows) est A
- mon user distant (debian) est B
- le message d'erreur émis par ssh lancé sur le poste local (windows) est :

Could not create directory /home/A/.ssh

A est mon user local, pas distant. Pourquoi le chercherait-il sur le serveur distant ? C'est pas logique, non ?

D'ailleurs, pourquoi n'ai je pas ce problème lorsque je fais le même appel ssh vers debian à partir d'un poste local Linux ?

Merci encore
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 11h14   #7
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Quelle commande tapes-tu exactement ?

A partir du moment où tu utilises "ssh" il faut que ton USER possède un compte sur le serveur ou spécifier un utilisateur existant...
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 11h22   #8
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
Je lance, sous userlocal :

Code :
rsync -e ssh -av --size-only --chmod=ugo=rwX /cygdrive/source/ userdist@serverdist:/cible/
userlocal n'existe pas sur le serveur distant.
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 11h31   #9
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 737
Points : 2 737
ssh a besoin de la clé publique du client, et si elle n'est pas spécifiée par l'option -i alors il cherche les endroits par défaut dont le /home/client_user/.ssh/, et s'il ne trouve pas de clés publiques alors il tentera une connection par challenge.
(jouer avec les options -v et -vv de ssh - en dehors de rsync - pour voir ce qu'il fait…)
Si vous ne voulez pas créer de /home/client_user dans l'environnement cygwin, mettez la clé publique à utiliser dans un endroit dont vous passerez le path à l'option -i de ssh (attention aux guillemets rsync a aussi une option -i qui n'a rien à voir…).

par contre le daemon sshd auquel ssh se connecte sur la machine distante, lui, cherchera les clés privées sur le serveur aux endroits spécifiés dans son fichier de configuration, dont normalement le /home/server_user/.ssh.
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 11h47   #10
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
En fouinant sur le Net, j'ai vu que peut être l'installation du paquet "cygwin ssh extra utils" serait utile...

A explorer après la réponse de "JeitEmgie"
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 12h12   #11
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
J'ai fait la tentative suivante :

a) ssh-keygen -P ""

b) Choisi un cheminlocal pour la clé (ceci y a placé id_rsa et id_rsa.pub)

c) remplacé ssh par "ssh -i /cygdrive/cheminlocal/id_rsa"

J'ai toujours "Could not create directory /home/client_user/.ssh".

Phil
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 13h27   #12
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 737
Points : 2 737
Citation:
Envoyé par Pgs Voir le message
J'ai fait la tentative suivante :

a) ssh-keygen -P ""

b) Choisi un cheminlocal pour la clé (ceci y a placé id_rsa et id_rsa.pub)

c) remplacé ssh par "ssh -i /cygdrive/cheminlocal/id_rsa"

J'ai toujours "Could not create directory /home/client_user/.ssh".

Phil
et on installe la clé publique dans
~/.ssh/authorized_keys du compte auquel on veut se connecter sur le serveur…

et pour rappel : essayez "ssh -v" ou même "ssh -vv" seul d'abord AVANT de compliquer la situation avec rsync, ainsi vous saurez pourquoi il essaie de créer /home/…

ici il y a des chances que la clé étant refusée parce que n'étant pas dans les authorized_keys, il essaie d'en trouver une autre dans /home/…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 15h40   #13
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
(suite)

"ssh -v" et "ssh -vv" me présentent une liste d'options pour la commande ssh.
Mais je n'y vois pas de moyen d'accéder aux paramètres de configuration.

Phil
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 17h30   #14
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 737
Points : 2 737
Citation:
Envoyé par Pgs Voir le message
(suite)

"ssh -v" et "ssh -vv" me présentent une liste d'options pour la commande ssh.
Mais je n'y vois pas de moyen d'accéder aux paramètres de configuration.

Phil
évidemment si vous ne donnez que -v comme paramètre…
il faut la commande complète : -v et -vv sont uniquement pour activer le mode "verbose" ou "very verbose"…

Code :
1
2
 
ssh -vv  -i PATH_TO_KEY client@server
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 17h46   #15
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
Merci,

Cette instruction sert-elle à lire ou à définir la valeur ?

Phil
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 18h11   #16
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 737
Points : 2 737
Citation:
Envoyé par Pgs Voir le message
Merci,

Cette instruction sert-elle à lire ou à définir la valeur ?

Phil
??????????

la commande ssh sert à vous connecter à la machine distance et obtenir un shell sous le compte de l'utilisateur, le fait d'y ajouter les options verbose vous permettra de voir de ce que fait ssh pour ce connecter : il va vous donner la suite exacte des protocoles et clés utilisées et ce qui échoue…
et donc vous aurez un diagnostic complet de la connection et devrait théoriquement permettre de comprendre pourquoi il cherche un dossier /home/user/… sur la machine locale.
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/07/2011, 22h44   #17
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
Encore merci. Vous allez finir par me prendre pour...

J'ai lancé ma commande en mode verbose.

Le seul commentaire qui me parle concernant mon problème est :

Warning: Identity file PATH_TO_KEY not accessible: No such file or directory.

Je pense que je ne maîtrise pas assez le paramétrage Openssh sur mon poste Vista.

En particulier, je n'arrive pas à accéder au paramétrage. D'ailleurs, je n'ai pas de répertoire Openssh. L'exécutable est dans le répertoire cwRsync.

Je vais appronfondir tout cela.

Merci pour votre aide.

Phil
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/07/2011, 07h28   #18
Pgs
Futur Membre du Club
 
Inscription : avril 2004
Messages : 205
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 205
Points : 18
Points : 18
Bonjour,

J'ai lu que le message "Could not create directory /home/client_user/.ssh" n'a pas été adapté à la version windows.

Ce message ne signifierait donc pas qu'il cherche ce répertoire, mais plus simplement que le compte utilisateur est mal configuré.

Toutes les doc que j'ai consultées parlent d'une fenêtre Cygwin et des instructions :
Code :
1
2
Users : mkpasswd -l > /etc/passwd 
Groupes : mkgroup -l > /etc/group
Sur mon poste, je n'ai pas d'application Cygwin. J'ai juste un répertoire programme cwRsync, qui contient rsync.exe et des exécutables ssh.

Phil
Pgs est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h11.


 
 
 
 
Partenaires

Hébergement Web