Transfert de fichiers par rsync impossible
nikobowl
-
amine00 Messages postés 140 Date d'inscription Statut Membre Dernière intervention -
amine00 Messages postés 140 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Transfert de fichiers par rsync impossible
- Impossible de supprimer un fichier - Guide
- Transfert de fichier entre 2 pc par wifi - Guide
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
7 réponses
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
Vérifier également avec un netstat -an et iptables si le port 22 est correctement ouvert
Non le problème vient du serveur qui n'accepte pas ta connexion, met le résultat de netstat -an et de iptables --list
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
"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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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"
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"