J'ai une instance EC2 en cours d'exécution et je peux y accéder en SSH.
Cependant, lorsque j'essaie de rsync, cela me donne l'erreur Autorisation refusée (publickey).
La commande que j'utilise est:
rsync -avL --progress -e ssh -i ~/mykeypair.pem ~/Sites/my_site/* [email protected]:/var/www/html/
J'ai aussi essayé
rsync -avz ~/Sites/mysite/* -e "ssh -i ~/.ssh/id_rsa.pub" [email protected]:/var/www/html/
Merci,
Je viens de recevoir cette même erreur. J'avais toujours été capable de ssh avec:
ssh -i ~/path/mykeypair.pem \
[email protected]
Mais lors de l'utilisation de la construction rsync plus longue, cela semblait provoquer des erreurs. J'ai fini par encapsuler l'instruction ssh entre guillemets et utiliser le chemin d'accès complet à la clé. Dans votre exemple:
rsync -avL --progress -e "ssh -i /path/to/mykeypair.pem" \
~/Sites/my_site/* \
[email protected]:/var/www/html/
Cela semblait faire l'affaire.
Après avoir un peu souffert, je pense que cela aidera:
J'utilise la commande ci-dessous et cela a fonctionné sans problème:
rsync -av --progress -e ssh /folder1/folder2/* [email protected]:/folder1/folder2
Première considération:
Utilisez le chemin --rsync
Je préfère dans un script Shell:
#!/bin/bash
RSYNC = /usr/bin/rsync
$RSYNC [options] [source] [destination]
Deuxième considération:
Créez une clé publick par commande ci-dessous pour la communication entre les serveurs en question. Elle ne sera pas la même que celle fournie par Amazon.
ssh-keygen -t rsa
N'oubliez pas d'activer l'autorisation sur le serveur cible dans/etc/ssh/sshd_config (UBUNTU et CENTOS).
Synchroniser les fichiers d'une instance EC2 à une autre
http://ask-leo.com/how_can_i_automate_an_sftp_transfer_between_two_servers.html
Utilisez l'option -v pour les erreurs détaillées et mieux identifier.
Troisième considération
Si les deux serveurs sont sur EC2, effectuez une restriction par groupe de sécurité
Dans le groupe de sécurité Destination du serveur:
entrant: Source/TCP port 22/Sécurité IP (ou nom de groupe) du serveur source
Voici ce que j'ai utilisé et cela a fonctionné. La source était ec2 et la cible était la machine domestique.
Sudo rsync -azvv -e "ssh -i /home/ubuntu/key-to-ec2.pem" [email protected]:/home/ec2-user/source/ /home/ubuntu/target/
copier le fichier de la machine locale vers le serveur
rsync -avz -e "ssh -i /path/to/key.pem" /path/to/file.txt <username>@<ip/domain>:/path/to/directory/
copier le fichier du serveur vers la machine locale
rsync -avz -e "ssh -i /path/to/key.pem" <username>@<ip/domain>:/path/to/directory/file.txt /path/to/directory/
Cela a fonctionné pour moi:
Nohup rsync -zravu --partial --progress -e "ssh -i xxxx.pem" [email protected]:/mnt/data /mnt2/ &