2011-09-20 32 views
5

tôi bắt đầu lên Ubuntu Linux, mở một thiết bị đầu cuối, chỉnh sửa một số mã, và hạnh phúc thựcGit Đẩy treo cứng sau một vài Đẩy

git push origin master 

Tuy nhiên, sau một khoảng thời gian (đôi khi 30 phút, thỉnh thoảng một vài tiếng đồng hồ), lệnh chính xác sẽ treo (không có đầu ra nào cả).

Khi tôi cố gắng

ssh -v [email protected] 

tôi nhận được câu trả lời sau đây:

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 

Và sau đó nó bị treo một lần nữa. Dường như tôi không còn có thể sử dụng SSH để git một khi tôi đã SSH đến một máy chủ khác. Bất kỳ ý tưởng làm thế nào để sửa lỗi này? Nó đang giết chết tôi phải khởi động lại mỗi lần.

Cập nhật:

Vấn đề sẽ biến mất khi tôi loại bỏ hai dòng sau (nhằm tạo điều kiện chia sẻ kết nối) từ ~/.ssh/config

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

Bạn có ở bất kỳ điểm nào thiết lập kết nối SSH khác với GitHub làm chủ điều khiển không? Thông báo gỡ lỗi đó có vẻ như nó đã tìm thấy một chủ kiểm soát SSH hiện tại –

+0

Đánh dấu - Tôi nghĩ rằng vấn đề là một cái gì đó giống như những gì bạn đang đề cập bởi vì khi tôi loại bỏ hai dòng trên tất cả mọi thứ bắt đầu làm việc lần nữa. Tuy nhiên, tôi chỉ có một người dùng kết nối với Git trên máy này. – Andy

+0

tuyệt vời, tôi rất vui khi biết bạn đã làm việc đó. Tôi đã thêm một câu trả lời cùng với những dòng này ngay bây giờ. –

Trả lời

2

Chỉ cần quay đoán của tôi từ một bình luận thành một câu trả lời ...

dòng cuối cùng trong đầu ra của ssh -v:

debug1: auto-mux: Trying existing master 

... cho bạn biết rằng SSH đã được định cấu hình để tìm kiếm kết nối SSH hiện có để sử dụng lại. Tôi nghi ngờ rằng kết nối hiện tại này cuối cùng bị mắc kẹt theo một cách nào đó, điều này sẽ giải thích hành vi bạn đang thấy.

Cơ sở chia sẻ kết nối này được mô tả trong phần ControlMaster của the ssh_config(5) man page. Về cơ bản, phiên SSH "chính" tạo ra một ổ cắm trong /tmp mà các phiên sau đó có thể kết nối thay vì phải trải qua bước xác thực có khả năng chiều dài một lần nữa. Bạn có tùy chọn này được đặt thành auto, điều đó có nghĩa là ổ cắm này sẽ được tạo và sử dụng tự động.

Các vấn đề liên quan