Можно ли подключиться по ssh извне ssh к хосту, с которого было ssh соединение?

Имеется два хоста. С одного хоста на другой делается ssh-соединение.

На удаленном хосте имеется директория ~/repository, к которой возможен конкурентный доступ еще десятками других хостов. Для решения этой проблемы на удаленном хосте также имеется файл ~/repisotory.lock, на который все хосты вынуждены делать блокировку на время доступа к директории ~/repository, чтобы решить проблему конкуренции.

Блокировка осуществляется такой командой на удаленном хосте:

(
   flock -n 9
   # ... commands executed under lock ...
) 9>~/repisotory.lock

Моя задача требует возможность скачать данные из удаленной директории ~/repository на локальный хост. Но это скачивание должны быть под блокировкой файла ~/repisotory.lock на удаленном хосте.

Как мне скопировать файл с удаленной директории ~/repository на локальный хост, используя уже установленное ssh соединение? Команда копирования должна быть на месте # ... commands executed under lock ..., чтобы она полностью была под блокировкой.

Для копирования файлов по ssh я использую rsync, хотя точно такая же проблема будет с любой командой.

Если я пропишу такую команду:

(
   flock -n 9
   rsync -a ~/repository айпи-локального-хоста:~
) 9>~/repisotory.lock

Тогда rsync откроет новое ssh соединение, заново попросит аутентификацию. Но ведь соединение уже имеется с локального хоста на удаленный, как его использовать?


Ответы (1 шт):

Автор решения: Алексей Ковальчук

Это не ответ на мой вопрос, но это решает мою проблему:

rsync -a --rsync-path="flock -s ~/reposotry.lock rsync" айпи удаленного хоста:~/repository ~
→ Ссылка