Используйте перенаправление портов. WinSCP, например, имеет опцию создать соединение через туннель ssh, и он использует перенаправление портов. Однако, так как необходимо туннелировать через два транзитных участка, Вы не можете использовать его.
Я propably сначала создал бы соединение 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
. Затем можно соединиться на remote_host ssh при помощи localhost:1234 на intermediate_hop.