На сьогодні найпростіший спосіб - просто скопіювати його через scp. Плюс цей синтаксис насправді працює на відміну від деяких інших пропозицій.
Ви не можете перемогти цей синтаксис для зручності. Це дозволяє рекурсивно копіювати, rsync чи що завгодно, без клопоту розглядати потенційно складні труби. Цей синтаксис інтуїтивно зрозумілий, він буде більш сприятливим для підтримки Sys Admins, які стежать за вами і не користуються кіткою марно .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
З сторінки man scp : -3
копії між двома віддаленими хостами передаються через локальний хост. Без цього параметра дані копіюються безпосередньо між двома віддаленими хостами. Зауважте, що ця опція вимикає вимірювач прогресу.
У наведеному нижче прикладі
- Ваша робоча станція названа MacBook-Pro.
- Dev Jump Box названий devjumpserver
- Сервер додатків Dev називається devapplicationserver
- Знаходиться в локальній мережі DNS з назвою .local
- QA Jump Box названий qajumpserver
- Сервер додатків QA називається qaapplicationserver
- Знаходиться в локальній мережі DNZ з назвою .local
- Ми виконаємо тестову копію файлу 670 ГБ / etc / hosts ;-)
- Припускається, що у вас налаштована автентифікація відкритого ключа SSH.
Ось файл ~ / .ssh / config, який встановлює прямий доступ зі своєї робочої станції до серверів додатків через відповідний стрибок (ака-сервер бастіону).
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Ведучий *
ServerAliveInterval 60
Розміщувач застосунку
HostName devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% h:% p
Користувач barrychapman
Хост-сервер Qaapplication
HostName qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% h:% p
Користувач barrychapman
MacBook-Pro: ~ barrychapman $
Тестуючи наявність файлу на цільовому сервері, його там не буде.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls: не може отримати доступ / tmp / hosts: Немає такого файлу чи каталогу
Загинув за сигналом 1.
MacBook-Pro: ~ barrychapman $
Тепер скопіюємо файл з сервера додатків Dev на додаток QA через свою робочу станцію.
MacBook-Pro: ~ barrychapman $ scp -3 devapplicationserver: / etc / hosts qaapplicationserver: / tmp /
Загинув за сигналом 1.
Загинув за сигналом 1.
MacBook-Pro: ~ barrychapman $
Тепер перевіримо наявність скопійованого файлу на сервері прикладних програм QA. Це буде цього разу.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp / господарі
Загинув за сигналом 1.
MacBook-Pro: ~ barrychapman $
Примітка
Закриваючи з'єднання ProxyCommand, ви побачите попереджувальне повідомлення "Убитий сигналом 1". Це SSH, що розриває з'єднання ProxyCommand, і це нічого не турбує. Ви можете позбутися від нього, додавши LogLevel Quiet
в конфігурацію хоста бастіонного конфігурації.