Maverick143 a fourni une réponse, mais cette question n'appartient pas vraiment à StackOverflow car elle a peu à voir avec la programmation. SuperUser.com aurait été plus pertinent.
Effectuez une rsync pour vous assurer qu'il demande le mot de passe de votre compte sur le serveur distant et copie correctement les fichiers sur le serveur distant.
L'exemple suivant synchronisera le dossier local /home/test
avec le dossier distant /backup/test(sur le 192.168.200.10serveur).
Cela devrait vous demander le mot de passe de votre compte sur le serveur distant.
Maintenant, configurez-le sshpour qu'il ne demande pas de mot de passe lorsque vous effectuez ssh. Utilisez ssh-keygensur le serveur local pour générer des clés publiques et privées.
$ ssh-keygen
Entrez la phrase secrète (vide pour aucune phrase secrète):
Entrez à nouveau la même phrase secrète: Remarque: Lorsqu'il vous demande d'entrer la phrase secrète, appuyez simplement sur la touche Entrée et ne donnez aucun mot de passe ici.
3. ssh-copy-id copie la clé publique sur l'hôte distant
Utilisez ssh-copy-id, pour copier la clé publique sur l'hôte distant.
Remarque: ce qui précède demandera le mot de passe du compte d'utilisateur sur l'hôte distant et copiera automatiquement la clé publique à l'emplacement approprié. Si ssh-copy-id ne fonctionne pas pour vous, utilisez la méthode décrite ci-dessus pour configurer le mot de passe ssh sans connexion.
4. Effectuez rsync sur ssh sans mot de passe
Maintenant, vous devriez pouvoir passer à l'hôte distant sans entrer le mot de passe.
Si vous devez utiliser un autre utilisateur, vous pouvez le faire lorsque vous exécutez le ssh-copy-id: ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected]
Finni McFinger
1
Générer la clé publique dans ServerA
$ ssh-keygen
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:
La clé publique sera générée et stockée dans
~/.ssh/id_rsa.pub
Copier la clé publique sur l'hôte distant
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
Ou
Ouvrez id_rsa.pub, copiez le contenu
Connectez-vous à ServerB en utilisant le même utilisateur dans la commande rsync
Dans ServerB, ajoutez le contenu à ~/.ssh/authorized_keys. Créez le fichier s'il n'existe pas. Assurez-vous que le mode de fichier est 700.
Toutes ces suggestions rsync échouent en utilisant la dernière version en août 2017 sur Ubuntu 16.04 LTS. Pas un seul d'entre eux ne fonctionne.
Ils partagent également tous le défaut d'exiger un démon rsync exécuté sur le serveur de fichiers.
Cette réponse fonctionne avec un NAS Linux générique
VOICI LES ÉTAPES:
1) UTILISEZ rsync comme indiqué ci-dessous. (dans un répertoire sous / mnt ou / media que vous avez créé ou sur un périphérique que vous montez. peu importe lequel) 2) TRANSFÉRER des fichiers AVEC scp comme indiqué ci-dessous. FileZilla fonctionnera également.
Tout cela (sauf FileZilla) peut fonctionner en cron sans mot de passe.
Cette configuration fonctionne très bien. La seule fois où vous avez besoin du mot de passe, c'est lorsque vous configurez le ssh-copy-id initial pour configurer les connexions sans mot de passe RSA. Ensuite, vous le programmez une fois dans FileZilla. Après cela, jour après jour, aucune invite de mot de passe ne se produit. C'est facile. Et la meilleure partie est que vous pouvez utiliser tous les avantages du programme rsync.
Cette réponse explique comment utiliser rsync lui-même sans mot de passe.
De plus, il n'est pas nécessaire d'installer un autre démon (rsync) sur l'un ou l'autre système.
Si vous ne l'avez pas déjà fait, procédez comme suit:
J'ai un deuxième disque dur, donc j'utilise rsync pour copier le disque de démarrage dans un sous-répertoire sur sdb1 (monté sous / mnt et exclu de rsync).
Si vous ne disposez pas d'un disque dur physique et que vous disposez de suffisamment d'espace disponible, créez simplement un sous-répertoire sous / mnt (ou / media) et utilisez-le.
Tant que le répertoire est exclu, peu importe qu'il se trouve sur un lecteur séparé ou non.
Voici le script de sauvegarde:
cls
echo "EMPTYING TRASH"
rm ~/.local.share/Trash/*
echo "====================================================================="
echo " BEGINNING rsync from root to /mnt/full/sysbkp"
echo "====================================================================="
time sudo rsync -aAXv / --delete --ignore-errors --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/full/mysystem
APRÈS la rsync, utilisez un script:
Je crée toujours un nouveau répertoire sur le serveur NAS cible: / mnt / fullsys / mysystem afin que seuls les fichiers pertinents soient transférés.
Voila! Cela prend un certain temps mais c'est fait.
Les deux scripts peuvent fonctionner correctement dans cron.
L'alternative est d'utiliser FileZilla pour lui envoyer le serveur NAS manuellement.
Puisqu'il peut y avoir des suppressions, j'ai toujours make a new directory and enter itvia FileZilla sur le disque dur cible de 1 To afin que seuls les fichiers pertinents soient transférés.
Ce n'est que lorsque le transfert est terminé que je supprime l'ancienne version.
Bien que cela puisse répondre à la question, ce serait une meilleure réponse si vous pouviez expliquer pourquoi .
DavidPostill
Aussi la syntaxe. Je crois que cela est utilisé comme une substitution de commande quelque chose comme ça: rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)alors tout le excludeset --deleteetc. Je ne l'ai pas encore fait fonctionner mais c'est le plus proche que j'ai vu. Soi-disant, vous devez le faire même si vous le pouvez déjà sshet scpsur le serveur cible, et le démon rsync doit être en cours d'exécution car il n'utilise pas le format sftp normal. Je suis toujours à la recherche.
Réponses:
Voici l'article de The Geek Stuff :
la source
Générer la clé publique dans ServerA
La clé publique sera générée et stockée dans
Copier la clé publique sur l'hôte distant
Ou
~/.ssh/authorized_keys
. Créez le fichier s'il n'existe pas. Assurez-vous que le mode de fichier est 700.la source
Toutes ces suggestions rsync échouent en utilisant la dernière version en août 2017 sur Ubuntu 16.04 LTS. Pas un seul d'entre eux ne fonctionne.
Ils partagent également tous le défaut d'exiger un démon rsync exécuté sur le serveur de fichiers.
Cette réponse fonctionne avec un NAS Linux générique
VOICI LES ÉTAPES:
1) UTILISEZ rsync comme indiqué ci-dessous. (dans un répertoire sous / mnt ou / media que vous avez créé ou sur un périphérique que vous montez. peu importe lequel) 2) TRANSFÉRER des fichiers AVEC scp comme indiqué ci-dessous. FileZilla fonctionnera également.
Tout cela (sauf FileZilla) peut fonctionner en cron sans mot de passe.
Cette configuration fonctionne très bien. La seule fois où vous avez besoin du mot de passe, c'est lorsque vous configurez le ssh-copy-id initial pour configurer les connexions sans mot de passe RSA. Ensuite, vous le programmez une fois dans FileZilla. Après cela, jour après jour, aucune invite de mot de passe ne se produit. C'est facile. Et la meilleure partie est que vous pouvez utiliser tous les avantages du programme rsync.
Cette réponse explique comment utiliser rsync lui-même sans mot de passe.
De plus, il n'est pas nécessaire d'installer un autre démon (rsync) sur l'un ou l'autre système.
Si vous ne l'avez pas déjà fait, procédez comme suit:
et testez-le avec ceci:
et peut-être quelque chose comme ça:
J'ai un deuxième disque dur, donc j'utilise rsync pour copier le disque de démarrage dans un sous-répertoire sur sdb1 (monté sous / mnt et exclu de rsync).
Si vous ne disposez pas d'un disque dur physique et que vous disposez de suffisamment d'espace disponible, créez simplement un sous-répertoire sous / mnt (ou / media) et utilisez-le.
Tant que le répertoire est exclu, peu importe qu'il se trouve sur un lecteur séparé ou non.
Voici le script de sauvegarde:
APRÈS la rsync, utilisez un script:
Voila! Cela prend un certain temps mais c'est fait.
Les deux scripts peuvent fonctionner correctement dans cron.
L'alternative est d'utiliser FileZilla pour lui envoyer le serveur NAS manuellement.
Ce n'est que lorsque le transfert est terminé que je supprime l'ancienne version.
Voila. Succès.
la source
marquer l'utilisateur dans l'adresse serait mieux
la source
rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)
alors tout leexcludes
et--delete
etc. Je ne l'ai pas encore fait fonctionner mais c'est le plus proche que j'ai vu. Soi-disant, vous devez le faire même si vous le pouvez déjàssh
etscp
sur le serveur cible, et le démon rsync doit être en cours d'exécution car il n'utilise pas le format sftp normal. Je suis toujours à la recherche.