De loin, le moyen le plus simple est de simplement le copier via scp. De plus, cette syntaxe fonctionne en fait contrairement à certaines des autres suggestions.
Vous ne pouvez pas battre cette syntaxe pour plus de facilité. Il vous permet de copier, rsync récursivement ou tout ce que vous voulez sans avoir à considérer des canaux potentiellement complexes. Cette syntaxe est intuitivement claire, sera plus facilement supportable par les administrateurs Sys qui vous suivent et ne font pas usage inutile de cat .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
Depuis la page de manuel scp : les -3
copies entre deux hôtes distants sont transférées via l'hôte local. Sans cette option, les données sont copiées directement entre les deux hôtes distants. Notez que cette option désactive le compteur de progression.
Dans l'exemple ci-dessous
- Votre poste de travail s'appelle MacBook-Pro.
- Dev Jump Box est nommé devjumpserver
- Dev Application Server est nommé devapplicationserver
- Est sur la zone DNS LAN nommée .local
- QA Jump Box est nommé qajumpserver
- QA Application Server est nommé qaapplicationserver
- Est sur la zone LAN DNZ nommée .local
- Nous allons effectuer une copie de test d'un fichier 670GB / etc / hosts ;-)
- Il est supposé que vous avez configuré l'authentification par clé publique SSH.
Voici un fichier ~ / .ssh / config qui configure l'accès direct de votre poste de travail aux serveurs d'applications via le saut approprié (aka bastion server).
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Hôte *
ServerAliveInterval 60
Host devapplicationsever
Hostapp devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% h:% p
User barrychapman
Host qaapplicationserver
HostName qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% h:% p
User barrychapman
MacBook-Pro: ~ barrychapman $
Test de présence de fichier sur le serveur cible, il ne sera pas là.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls: impossible d'accéder à / tmp / hosts: aucun fichier ou répertoire de ce type
Tué par le signal 1.
MacBook-Pro: ~ barrychapman $
Copions maintenant un fichier du serveur d'application Dev vers l'application QA via votre poste de travail.
MacBook-Pro: ~ barrychapman $ scp -3 devapplicationserver: / etc / hosts qaapplicationserver: / tmp /
Tué par le signal 1.
Tué par le signal 1.
MacBook-Pro: ~ barrychapman $
Vérifions maintenant la présence du fichier copié sur le serveur d'application QA. Ce sera là cette fois.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp / hosts
Tué par le signal 1.
MacBook-Pro: ~ barrychapman $
Remarque
Lors de la fermeture d'une connexion ProxyCommand, vous verrez le message d'avertissement "Killed by signal 1". Il s'agit de SSH interrompant la connexion ProxyCommand et il n'y a rien à craindre. Vous pouvez vous en débarrasser en ajoutant LogLevel Quiet
à votre strophe de configuration d'hôte bastion.