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

Rsync от A до C через обратный туннель на B

Некоторое время искал это и не нашел решения.

Машина 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