
На работе у меня есть сервер входа, и я вхожу в 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
или любой другой удобный вам инструмент для копирования файлов.