Czasami pojawia się ten błąd, gdy próbuję ssh do zdalnego hosta:
mux_client_request_session: read from master failed: Broken pipe
Korzystam z Macbooka Air OS X Lion z tym w ~ / .ssh / config:
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 4h
ForwardAgent yes
Host [ex]
HostName [example.com]
User [somedude]
Powyższy błąd występuje, gdy:
ssh ex
Terminal zawiesza się przez ~ 1 minutę, a następnie wyświetla:
mux_client_request_session: read from master failed: Broken pipe
[email protected]'s password:
Wpisuję hasło i jest w porządku. A jeśli otworzę kolejną kartę Terminal, udostępnianie połączenia też będzie w porządku. Jak mogę to naprawić? To nie jest okropne, ale denerwujące.
ssh
terminal
connection-sharing
macbook-air
David Xia
źródło
źródło
Odpowiedzi:
Zostały
ControlPersist
włączone. Moje wykształcone przypuszczenie jest następujące:ControlPersist
jest włączona, sesja jest otwarta dla przyszłych połączeń.ssh [email protected]
ponownym uruchomieniu próbuje ponownie użyć połączenia z kroku 2 i otwiera nowe połączenie po upływie limitu czasu.Według
man ssh_config
. Nie ma osobnej opcji dla tego limitu czasu . Aby tego uniknąć, nie używajControlPersist
. Ponadto, jeśli to możliwe, bardzo polecam używanie loginu klucza publicznego. Nadal możesz mieć hasło do klucza publicznego, ale klucz publiczny skutecznie zapobiega brutalnemu wymuszaniu hasła przez połączenie SSH.Ponadto nie należy przechowywać plików kontrolnych w obszarze
/tmp
. Te powinny / muszą być zabezpieczone, a do tego na przykład~/.ssh/master/ssh_mux_%h_%p_%r
jest o wiele lepsza lokalizacja. Oczywiście, jeśli jesteś jedynym użytkownikiem swojego laptopa (?), Nie jest to zbyt duży problem.źródło