Transfert de fichiers par rsync impossible

Fermé
nikobowl - 20 janv. 2010 à 14:36
amine00 Messages postés 139 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 24 octobre 2014 - 21 janv. 2010 à 16:01
Bonjour, chers amis linuxiens

Voilà, je débute sur linux et j'aimerai pouvoir transférer des fichiers pour les sauvegarder sur un serveur (mon client et mon serveur sont tous les deux sous CentOS) via ssh.

j'ai installé et configuré ssh sur mon serveur comme ceci


Port 22
Protocol 2
ListenAddress votre_ip
ServerKeyBits 1024
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
IgnoreRhosts yes
PasswordAuthentication yes
UsePAM yes
Compression yes

(je n'ai mis que le principal)

rsync fonctionne parfaitement sur une seule machine mais il suffit d'un crash disque pour perdre toutes mes données donc je me suis penché sur le transfert à distance sécurisé grâce à ssh.

la création des clés (privée et publique) et l'envoi au serveur de la clé publique s'est fait sans problème

Seulement, quand je tape la commande 'rsync -avz /chemin_origine/ login@ip_serveur:/chemin_destination/'
il me demande 'login@ip_serveur's password' et quand je rentre le mot de passe, il me renvoi un message d'erreur => "ssh: connect to host 20.0.0.1 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(463) [sender=2.6.8]"

quelqu'un pourrait-il m'aider à résoudre ce problème ?

Merci d'avance
A voir également:

7 réponses

tck-lt Messages postés 135 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 3
20 janv. 2010 à 14:39
A tout hasard, je suppose que tu ne te connectes pas en root.
Vérifier également avec un netstat -an et iptables si le port 22 est correctement ouvert
1
sur le poste client tu veux dire ? non je ne suis pas en super-utilisateur
0
tck-lt Messages postés 135 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 3
20 janv. 2010 à 14:49
Non le problème vient du serveur qui n'accepte pas ta connexion, met le résultat de netstat -an et de iptables --list
0
pour iptables --list il me met :

"Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



pour netstat -an il me met

"proto Recv-Q Send-Q Local Adresse Foreign Address state
tcp 0 0 127.0.0.1: .. 0.0.0.0:* LISTEN

.
.
.

udp 0 0 0.0.0.0: .. 0.0.0.0:*

.
.
.

Sockets du domaine U7NIX actives (serveurs et établies)
...... (je vais pas tout mettre, il faut juste que je sache où pourrait être l'erreur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amine00 Messages postés 139 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 24 octobre 2014 33
20 janv. 2010 à 22:58
Bonjour,

Comme t'as dit tck-lt, vérifie que l'user que tu utilises dans ta commande rsync n'est pas l'user root ou sinon tu dois permettre au root sur ton serveur de se loguer en ssh.

Vérifie aussi dans ta sortie netstat que ton serveur écoute sur le port 22.

Si çà peut aussi t'aider, tu peux consulter le script sur le lien suivant que tu peux automatiser avec une tâche cron:

http://www.casafire.com/fr/content/sauvegarde-incr%C3%A9mentale-de-fichiers-avec-rsync-et-ssh
0
j'ai créé un utilisateur avec adduser sur mon poste client pour ne plus être connecté en tant que root
j'ai donc recréé un fichier caché .ssh sous la racine
j'ai généré une autre paire de clés ... le problème c'est que les fichiers id-rsa et id-rsa.pub ne se créent pas dans .ssh (peut-être parce que je ne suis pas connecté en superutilisateur ...)

en tout cas, plus le temps passe et plus c'est l'embrouille

je me demande si c'est un problème de port, d'adresse ip

On m'a aussi parler du fichier cron.tab mais je l'ai vu nulle part dans toutes les configurations de ssh que j'ai pu voir sur le net

si quelqu'un pouvais m'aider à m'enlever cette épine du pied ça me ferai bien plaisir :)

encore merci d'avance
0
amine00 Messages postés 139 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 24 octobre 2014 33
21 janv. 2010 à 16:01
La modification de l'utilisateur sur le poste local ne change rien. C'est l'utilisateur distant qu'il faut vérifier càd si t'as la commande suivante par exemple:

rsync -avz /chemin_origine/ login@ip_serveur:/chemin_destination/

C'est l'utilisateur 'login' qu'il faut vérifier qu'il existe sur ton serveur et que c'est pas root.

Deuxième souci, c'est pour la génération de la clé SSH. En fait c'est pas sur la racine qu'il faut mettre '.ssh' mais sur le répertoire de l'user qui exécute le rsync (raccourci ~). Voici la procédure à suivre:

Sur le client, tu exécutes la commande suivante avec le même user qui va lancer le rsync:

ssh-keygen -f ~/.ssh/backup_key

là normalement tu auras backup_key et backup_key.pub dans le dossier ~/.ssh


Ensuite, il faut ajouter ta clé publique sur le serveur, et plus exactement sur le fichier ~/.ssh/authorized_keys de l'utilisateur distant (celui que tu utilises en paramètre de ta commande rsync, càd 'login' si la commande est 'rsync -avz /chemin_origine/ login@ip_serveur:/chemin_destination/').

Pour çà, soit tu fais un copier coller de ta clé publique, soit tu utilises la commande suivante -qui est plus simple- à partir du client:

cat ~/.ssh/backup_key.pub | ssh login@serveur "cat - >>.ssh/authorized_keys"
0