В Интернете есть множество примеров того, как использовать общий доступ к соединению:
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
Тем не менее, я обнаружил, что самое первое ssh-соединение (это использует git, если это уместно) зависает в нечетном месте (я полагаю, во время выхода) - любая попытка pstack
процесса git или даже kill -9
ничего не делает при все. Все, что работает, это убить вызывающий процесс.
Однако, похоже, что сокет подключения ssh был настроен (теперь запущен процесс ssh, который отображается как ssh: /home/ttanner/.ssh/sockets/user@host-22 [mux]
), и последующие sshs отображаются в отлично работает
Это довольно раздражает, поскольку git, кажется, тратит довольно много времени на работу с ssh-соединениями, и мы действительно хотели бы использовать это в нашей системе CI - когда мы не знаем, на какой машине мы собираемся запустить какую-то конкретную группу git. команды и так зависание на 1-м соединении не очень хороший вариант
Приложение: Запуск с отладкой показывает это странное сообщение:
debug3: mux_client_read_packet: read header failed: Broken pipe
что, возможно, означает, что на самом деле совместное использование вообще не работает, просто в последующих подключениях git не заботится и использует локальную информацию.