Представьте себе следующую ситуацию:
У меня нет прямого доступа 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.
Это не проверено, но я думаю, это должно сработать.
Самый простой способ без цепей:
WinSCP поддерживает SSH-туннелирование. Чтобы включить его:
Вы можете связать остальные соединения, используя ssh-туннелирование. Посмотреть вариант -L
для openssh: ssh -L 1234:remote_host:22 user@intermediate_hop
. Затем вы можете подключиться к удаленному хосту ssh, используя localhost: 1234 в промежуточном_хопе.