Копирование файлов через два уровня SSH из Windows

Копирование файлов через два уровня SSH из Windows

На работе у меня есть сервер входа, и я вхожу в Linux-бокс с этого сервера входа. Например,

ssh login@host

ssh computer_name

предоставляя аутентификацию каждый раз. Если я работаю со своего ноутбука, который (к сожалению) работает под управлением Vista, я запускаю putty, чтобы войти, login@hostа затем вхожу в computer_name из терминала, который он открывает.

Мне часто приходится переносить локальные файлы с моего компьютера на Linux-компьютер и наоборот. Обычно я использую WinSCP для переноса на , login@hostnameа затем scp на computer_name или наоборот. Однако login@hostnameимеет очень ограниченное дисковое пространство, и я не могу передавать файлы большего размера таким образом. Есть ли способ переносить файлы напрямую между computer_name и моим ноутбуком?

решение1

Настройте порт как локальный порт-форвардинг. Для OpenSSH это будет означать:

$ ssh login@host -L 2222:computer_name:22

что приводит к тому, что любые соединения с портом 2222будут localhostперенаправлены на порт 22через computer_name- и это важно здесь - host. Затем следуйте

$ scp -P 2222 computer_name_user@localhost:remote local

Очевидно, это также позволяет вам подключаться кcomputer_name

$ scp -p 2222 computer_name_user@localhost

PuTTY способен выполнять переадресацию портов (и, scpнасколько я помню, он это уже делал), но, хотя это платное программное обеспечение, я бы рекомендовал использовать OpenSSH под Cygwin, поскольку это дает вам фактически стандартный интерфейс SSH (со всеми наворотами).

Мне не удалось быстро найти четкий дубликат, но вы, вероятно, захотите проверить:

решение2

Самый простой способ работать через два уровня SSH — скрыть промежуточный уровень.

НастройтеProxyCommandтак что вы можете напрямую запустить ssh computer_nameс исходного клиента. Настройте аутентификацию открытого ключа и активируйте переадресацию агента ( ForwardAgent yesв ~/.ssh/config), так что вам не нужно будет явно предоставлять учетные данные промежуточной машине.

Теперь все ssh computer_nameработает без проблем, просто используйте scpили rsyncили любой другой удобный вам инструмент для копирования файлов.

Связанный контент