Назад | Перейти на главную страницу

Как скачать файл через (Putty) SSH

Представьте себе следующую ситуацию:

У меня нет прямого доступа SSH к серверу A из-за ограничений фильтрации IP. Чтобы получить доступ к серверу (из окон с использованием шпатлевки), я сначала подключаюсь к Server-B, у которого есть IP-адрес из белого списка, а оттуда SSH на Server-C, а затем SSH оттуда на Server-A (я знаю, что звучит безумие, но, к сожалению, у меня нет прав изменять ограничения фильтрации IP). Есть ли способ использовать putty / winscp / что-нибудь еще для загрузки файла с сервера-A на мой локальный компьютер?

Используйте переадресацию портов. WinSCP, например, имеет возможность создать соединение через туннель ssh и использует переадресацию портов. Тем не менее, поскольку вам нужно туннель через два хмель, вы не можете его использовать.

Я бы, вероятно, сначала создал ssh-соединение с сервером-B, у которого есть туннель к серверу-C. Вы можете использовать для этого plink.exe (часть замазки):

plink.exe -l username_on_server_B -L 8888:server-C:22 server-B

Теперь вы можете создать второй туннель, используя ssh-соединение с сервером B, которое ведет к серверу A (во второй оболочке cmd.exe):

plink.exe -l username_on_server_C -L 8889:server-A:22 -P 8888 localhost

После этого вы сможете подключиться к серверу A с помощью WinSCP. Вместо сервера-A вы подключаетесь к порту localhost 8889, который будет туннелирован на сервер-A.

Это не проверено, но я думаю, это должно сработать.

Самый простой способ без цепей:

  1. загрузить файл с сервера A на сервер C с помощью scp
  2. загрузить файл с Server-C на Server-B с помощью scp
  3. загрузить файл с Server-B на локальный ПК с помощью WinSCP

WinSCP поддерживает SSH-туннелирование. Чтобы включить его:

  • Установите флажок «Дополнительные параметры».
  • в дереве конфигурации щелкните «Соединение / Туннель» и добавьте сюда промежуточный сервер перехода.
  • в дереве конфигурации нажмите «Сеанс» и настройте целевой сервер. Сохраните сеанс для последующего пользователя, нажав «Сохранить ...»

Вы можете связать остальные соединения, используя ssh-туннелирование. Посмотреть вариант -L для openssh: ssh -L 1234:remote_host:22 user@intermediate_hop. Затем вы можете подключиться к удаленному хосту ssh, используя localhost: 1234 в промежуточном_хопе.