У нас следующая ситуация:
- Моя машина
- Шлюз машины
- Целевая машина
У меня нет корневых прав на # 2 и # 3. Я также не могу на самом деле хранить информацию (не более 200 МБ) на машине № 2 (поскольку она должна быть шлюзом в остальную сеть, не более того). На машине № 3 есть папка размером около 3 ГБ, которую я хочу скопировать в локальную папку. Я не могу SSH от # 1 до # 3, но я могу SSH до # 2 и затем до # 3. Также невозможно установить публичную частную пару ключей между # 2 и # 3, но между # 1 и # 2 установлена пара ключей.
Обычно я использую комбинацию SSH и tar, чтобы сделать это:
ssh name@host "tar cf - folder" > folder.tar
Но в этом случае это потребует некоторого вложения, и я не могу этого сделать.
Итак, что было бы хорошим способом получить данные от № 3 до № 1?
источник
ProxyCommand
иssh -W
двеssh
команды могут быть объединены в одну командную строку. Если у вас очень свежая версия клиента OpenSSH, есть аргумент, который позволит вам сделать все это однойssh
командой.Вы также можете использовать возможность Мастер сеанса более новых версий SSH. Это описано здесь:
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing
Вероятно, все, что вам нужно, это отредактировать / создать ваш .ssh / config. Добавьте туда определения, которые управляют мастер-сессиями:
Затем вы можете указать свое определение сервера первого прыжка, например:
И второй прыжок будет использовать ваш сервер первого прыжка в качестве прокси:
Не забудьте создать каталог ~ / .ssh / cm_socket, а разрешения для конфигурации должны быть 644.
Тогда вы сможете использовать SSH или SCP напрямую со второго сервера. Может быть больше серверов, соединенных таким образом.
источник
ControlMaster
необходимо для прокси. Вот более релевантная страница в этом викибуке: en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts