Je suis actuellement loin de mon réseau local et je dois faire une sauvegarde de mon ordinateur portable. J'ai une copie quelque peu récente de mon ordinateur portable sur mon serveur et je sauvegarde généralement l'ordinateur portable à l'aide de rsync. Maintenant, je souhaite le faire, mais en dehors de mon réseau local.
En bref, je veux envoyer des données de A à C via B, où A est mon ordinateur portable, B mon routeur et C mon serveur.
J'ai trouvé cette commande:, A$ scp -oProxyCommand="ssh B nc %h %p" thefile C:destination
qui fonctionne bien pour transférer des fichiers via scp - mais comme j'ai déjà la plupart des données sur mon serveur, je souhaite utiliser rsync pour synchroniser uniquement le delta.
J'ai essayé:, A$ rsync file -e 'ssh B ssh' C
et cela fonctionne pour autant que je suis invité à donner le mot de passe pour l'utilisateur: C. Cependant, lorsque j'entre le mot de passe, rien ne se passe. Le routeur exécute Tomato v1.28 et je ne peux pas le configurer pour utiliser un fichier de configuration ssh pour lui permettre de se connecter à C sans mot de passe.
Des idées sur la façon de faire fonctionner cela?
ProxyCommand
dans le fichier de configuration. Rsync devrait reprendre cela.Réponses:
Cette question est essentiellement répondue ailleurs, y compris ici pour scp et ici pour rsync . Étant donné que cette dernière comprend ma réponse, mais qu'aucune réponse n'a été acceptée, je vais la répéter ici.
Comme vous l'avez noté, vous pouvez utiliser
rsync
l'-e | --rsh
option de, mais ça va être un peu plus compliqué:Ou, si votre version de
ssh
est suffisamment nouvelle (OpenSSH> = v7.3), vous pouvez utiliser l' option-J
(ProxyJump
)Notez que j'utilise
-A
(transfert d'agent) mais cela devrait également fonctionner avec l'authentification par mot de passe si vous n'utilisez pas de clés, et, bien sûr, vous pouvez remplacerproxy
parB
etdest
avecC
dans votre exemple.Si par hasard vous n'avez pas une nouvelle
ssh
version suffisante (> = 5.3, IIRC), vous pouvez utiliser à lanetcat
place de l'-W
option pourssh
:Enfin, comme déjà indiqué dans les commentaires, vous pouvez mettre le
ProxyCommand
dans votre$HOME/.ssh/config
fichier afin que vous n'ayez pas à avoir une ligne de commande aussi compliquée. Plus précisément, ajoutez quelque chose comme ceci:Ou, en utilisant
ProxyJump
pour OpenSSH> = v 7.3:Vous devriez alors pouvoir simplement faire:
la source