Некоторое время искал это и не нашел решения.
Машина C имеет постоянный обратный туннель к машине B. То есть машина B может подключаться обратно к машине C через обратный туннель. Я могу rsync файлы из C в B, а затем извлекать их из A в B.
Как бы один rsync от A до C и получать файлы.
В настоящее время я могу подключиться напрямую к C из A с помощью ssh -A -t HostB "ssh user @ localhost -pXXXXX"
Спасибо
Я боролся с той же проблемой. Решение состоит в том, чтобы использовать порт ssh для пересылки на машине, инициирующей на машину B, и обратный порт ssh на машине, которая принимает. В следующих примерах -
deh is user name
export BIP=47.208.123.123 (B's IP address)
22 (A's ssh listening port)
41572 (B's ssh listening port)
22221 (local port on B from reverse ssh of A)
22223 (local port on B from reverse ssh of C)
22 (C's ssh listening port)
Машины A и C имеют постоянные прямые соединения обратного порта с B. настройте следующим образом:
ssh -R 22221:localhost:22 deh@$BIP -p 41572
ssh -R 22223:localhost:22 deh@$BIP -p 41572
Если машина A хочет получить доступ к машине C, машина A устанавливает соединение прямого порта ssh с обратным портом, который C установил на B, например -
ssh -L 22223:localhost:22223 deh@$BIP -p 41572
С помощью этого подключения A может затем инициировать подключения к C.
На A получите терминал на C за один шаг -
ssh -p 22223 deh@localhost
На A перенесите каталог с файлами на C, например -
rsync -ruav -e 'ssh -p 22223' /home/deh/datafiles deh@localhost:/home/deh
Если C хочет получить доступ к A, C устанавливает соединение прямого порта с B, используя обратный порт A, установленный на B, например -
ssh -L 22221:localhost:22221 deh@$BIP -p 41572
Затем C может ssh в A за один шаг, например ssh, rsync и т. Д.
ssh -p 22221 deh@localhost