6

Недавно я включил ControlMaster и ControlPersist в SSH, чтобы он повторно использовал и мультиплексировал соединения для скорости. Конфиг:

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 4h

Если я отключаю ControlPersist , все в порядке. С ним дальше, хотя, первое соединение мерзавец / рт.ст. всегда будет замерзать. Обычно SSHing (в оболочке) работает нормально, впервые, но git / hg зависает. Если я остановлю его нажатием Ctrl +C, а затем повторите попытку, он будет использовать уже установленное соединение для мультиплексирования и будет быстрым, но не будет делать это в первый раз. Превращение LogLevel до 11 дает мне:

remote: debug2: fd 4 setting O_NONBLOCK
remote: debug1: forking to background
remote: debug1: Entering interactive session.
remote: debug2: set_control_persist_exit_time: schedule exit in 14400 seconds
remote: debug1: multiplexing control connection
remote: debug2: fd 5 setting O_NONBLOCK

в этот момент он просто замерзает и остается там навсегда. В чем дело?

1 ответ1

2

Я наблюдаю такое же поведение и думаю, что это связано с этой ошибкой OpenSSH: https://bugzilla.mindrot.org/show_bug.cgi?id=1988 (ControlPersist заставляет stderr оставаться открытым, пока не истечет время ожидания мастер-соединения )

Надеюсь, это будет исправлено в конце концов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .