Иногда я получаю эту ошибку, когда я пытаюсь ssh на удаленный хост:
mux_client_request_session: read from master failed: Broken pipe
Я использую Macbook Air OS X Lion с этим в ~ / .ssh / config:
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 4h
ForwardAgent yes
Host [ex]
HostName [example.com]
User [somedude]
Ошибка выше происходит, когда я делаю:
ssh ex
Терминал зависает в течение ~ 1 минуты, а затем отображает:
mux_client_request_session: read from master failed: Broken pipe
somedude@example.com's password:
Я ввожу свой пароль, и все в порядке. И если я открою другую вкладку «Терминал», то все в порядке. Как я могу это исправить? Это не страшно, но раздражает.
ssh
terminal
connection-sharing
macbook-air
Дэвид Ся
источник
источник
Ответы:
Вы
ControlPersist
включили. Мое обоснованное предположение заключается в следующем:ControlPersist
она включена, сеанс остается открытым для будущих подключений.ssh somedude@example.com
повторном запуске он пытается повторно использовать соединение, начиная с шага 2, и открывает новое соединение по истечении времени ожидания.Отдельная опция для этого тайм-аута недоступна, в соответствии с
man ssh_config
. Чтобы избежать этого, не используйтеControlPersist
. Кроме того, я настоятельно рекомендую использовать открытый ключ, если это возможно. У вас все еще может быть фраза-пароль для вашего открытого ключа, но открытый ключ эффективно предотвращает взлом вашего пароля через SSH-соединение.Кроме того, вы не должны хранить контрольные файлы в
/tmp
. Те должны / должны быть защищены, и для этого, например,~/.ssh/master/ssh_mux_%h_%p_%r
это лучшее место. Конечно, если вы единственный пользователь своего ноутбука (?), Это не слишком большая проблема.источник