11

Я пытаюсь разработать метод, позволяющий мне получить доступ к файлам на SFTP-сервере, а не получить доступ с локального компьютера. В настоящее время мне нужно SSH к удаленному серверу (он находится в определенном IP-блоке, с которого будет принимать конечный SFTP-сервер), а затем оттуда SFTP к целевому серверу. Оттуда я get файлы, которые мне интересны, и помещает их на сервер-посредник, с которого я могу получить файлы либо через общий ресурс Samba, либо с прямым scp . Я также работаю в обратном порядке, где я перетаскиваю файлы на посредника, SSH к нему, затем SFTP к месту назначения и put их в соответствующие папки.

Моя цель - сократить это. К сожалению, ограничения заключаются в том, что моя машина работает под управлением Windows (я использую KiTTy и / или Cygwin), и я не могу каким-либо образом изменять сервер-посредник (или сервер назначения). Я готов использовать программы командной строки или программы с графическим интерфейсом, если они работают и бесплатны.

Есть идеи?

3 ответа3

20

По сути, без графического интерфейса или других удобств:

ssh -o ProxyCommand='ssh myfirsthop nc -w 10 %h %p' mydestination

Вы можете сделать это по умолчанию, отредактировав файл конфигурации, по умолчанию ~/.ssh/config

Host mydestination, mydest2, mydest3
ProxyCommand ssh myfirsthop nc -w 10 %h %p

Это тогда позволяет вам сделать

ssh mydestination
scp mydest2:file.txt ./
scp file.txt mydest3:/tmp/

Конечно, с помощью такой магии вы можете легко

mkdir -pv /tmp/mydest3tmp          # create mountpoint
sshfs mydest3:/tmp /tmp/dest3tmp/  # mount :)

На Windows вы бы использовали WinSCP, который поставляется с (я думаю, IIRC) PLINK (из набора Putty). Я предполагаю, что местоположение по умолчанию для файла config ssh отличается (я должен был бы гуглить для этого), но я уверен, что это работает более или менее то же самое.

Обратите внимание, что единственное, что вам нужно для этого, - это netcat (nc) на промежуточном сервере (первый переход). Это повсеместный инструмент для Linux /UNIX [1]; Довольно просто построить статически связанную версию, которая должна работать, если вы можете скопировать ее туда в первую очередь.

[1] обратите внимание, что есть некоторые разновидности, поэтому опцию -w, возможно, придется пропустить / записать иначе

9

Я не собираюсь устанавливать это как принятый ответ, потому что я никогда не нашел бы это без @sehe и @Jakub, но вот что я нашел, что упрощает все ...

WinSCP имеет возможность использовать встроенный туннель SSH. Я не знаю, когда эта функция появилась, но я никогда раньше не замечал ее.

Настройки WinSCP Tunnel

2

Одним из моих предложений было бы создать прокси socks с использованием putty (из окна Windows), а затем через него прокси-сервер SFTP (скажем, Filezilla sftp).

Вам не нужно будет делать что-то особенное таким образом, просто включите прокси-сервер putty socks5, включите filezilla и перенесите ваши файлы на конечный сервер.

(you ==socks5 proxy==> middle server) ==> destination server

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .