2011-09-20 17 views
5

ja uruchomić Ubuntu Linux, otwórz terminal, edytować jakiś kod i szczęśliwie wykonaćgit push zawiesza się po kilku Odkłada

git push origin master 

Jednak po pewnym okresie czasu (czasem 30 minut, czasem kilka godzin), dokładnie to samo polecenie zawiesi się (w ogóle brak sygnału wyjściowego).

Kiedy próbuję

ssh -v [email protected] 

mam następującą odpowiedź:

OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010 
debug1: Reading configuration data /home/avitus/.ssh/config 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: Applying options for * 
debug1: auto-mux: Trying existing master 

A potem znowu wisi. Wygląda na to, że nie mogę już używać SSH do wysyłania gifów, gdy już mam SSH na innym serwerze. Wszelkie pomysły, jak to naprawić? Zabija mnie konieczność ponownego uruchomienia za każdym razem.

Aktualizacja:

Problem znika kiedy usunąć następujące dwa wiersze (zadanie ułatwić udostępnianie połączenia) z ~/.ssh/config

ControlMaster auto 
ControlPath /tmp/ssh_mux_%h_%p_%r 
+0

Czy w dowolnym momencie skonfigurowałeś połączenie SSH z GitHub jako kontrolerem? (To jest mechanizm dzielenia istniejącego połączenia.) Ta wiadomość debugowania wygląda tak, jak znalazła istniejącego kontrolera głównego SSH. –

+0

Mark - Myślę, że problem jest podobny do tego, o którym mówisz, ponieważ kiedy usunąłem dwie linie powyżej wszystko zaczęło działać jeszcze raz. Jednak mam tylko jednego użytkownika łączącego się z Git na tym komputerze. – Andy

+0

Wspaniale, cieszę się, że to działa. Dodałem odpowiedź już teraz. –

Odpowiedz

2

Wystarczy obracając mylę z komentarzem w odpowiedzi ...

ostatni wiersz w wyjściu ssh -v:

debug1: auto-mux: Trying existing master 

... mówi, że SSH został skonfigurowany do wyszukiwania istniejącego połączenia SSH do ponownego użycia. Podejrzewam, że to istniejące połączenie ostatecznie utknęło w jakiś sposób, co wyjaśniałoby zachowanie, które widzisz.

Ta funkcja udostępniania połączeń jest opisana w sekcji ControlMaster z the ssh_config(5) man page. Zasadniczo "główna" sesja SSH tworzy gniazdo w postaci /tmp, z którym później mogą się łączyć sesje, zamiast ponownie przechodzić przez etap uwierzytelniania o potencjalnej długości. Ta opcja jest ustawiona na auto, co oznacza, że ​​to gniazdo zostanie utworzone i będzie używane automatycznie.

Powiązane problemy