2012-04-12 15 views
12

Tôi đang cố triển khai dự án bằng Capistrano. Máy phát triển của tôi đang chạy Windows 7; máy chủ mà tôi đang triển khai là Linux.Triển khai Capistrano từ Windows bằng cách sử dụng tùy chọn forward_agent: "Lỗi khi đọc độ dài phản hồi từ ổ cắm xác thực".

Trong kịch bản deploy.rb, sau đây được thiết lập:

ssh_options[:forward_agent] = true 

Kịch bản Capistrano bắt đầu giảm giá bằng cách chạy lệnh git tại địa phương, tại thời điểm đó tôi đang nhắc nhở cho các cụm từ mật khẩu cho khóa SSH của tôi:

* executing `deploy:update_code' 
executing locally: "git ls-remote [email protected]:pathto/gitproject.git develop" 
Enter passphrase for key '/c/Users/Sam/.ssh/id_rsa': 
command finished in 6999ms 

(tôi đã gỡ bỏ con đường git thực từ bên trên như bạn có lẽ có thể nhìn thấy.)

tôi nhập cụm từ mật khẩu của tôi và điều này hoạt động tốt. Tuy nhiên, Capistrano sau đó cố gắng để làm một cái gì đó tương tự như trên máy từ xa (đổi tên thành staging-server.com ở dưới đây) và tôi nhận được một lỗi - xem dòng cuối cùng của chiết xuất này:

[staging-server.com] executing command 
[staging-server.com] sh -c 'git clone [email protected]:pathto/gitproject.git /home/perstest/releases/20120412074500 && cd 
/home/perstest/releases/20120412074500 && git checkout -b deploy 50eaf06d06d66fd20c3e55038276f420d8c308a8 && (echo 50eaf06d06d66fd20c3e55038 
276f420d8c308a8 > /home/perstest/releases/20120412074500/REVISION)' 
** [staging-server.com :: out] Initialized empty Git repository in /home/perstest/releases/20120412074500/.git/ 
** [staging-server.com :: err] Error reading response length from authentication socket. 

Nếu tôi nhận xét trong dòng forward_agent trong deploy.rb, cài đặt này thành công, có lẽ sử dụng khóa từ chính máy chủ triển khai.

Khóa SSH của tôi dường như đang hoạt động - sau khi tất cả, lệnh git ban đầu hoạt động, tôi có thể sử dụng nó trong git push/pull và ssh -T [email protected] báo cáo những gì cần (như được khuyến nghị trên github:help).

Tôi giả định rằng máy của tôi không cung cấp khóa khi máy chủ từ xa yêu cầu chúng. Sau rất nhiều Googling khủng khiếp, tôi tìm thấy các khuyến nghị tại http://hustoknow.blogspot.co.uk/2011/06/ssh-agent-and-agent-forwarding-on.html, giải thích làm thế nào để có được ssh-agent chạy khi khởi động. Tôi đã làm tất cả điều này từ dấu nhắc lệnh, vì vậy sau đó tôi chuyển sang git-bash và thiết lập .bash_profile của tôi cho điều đó để bao gồm tập lệnh mà tôi đã liên kết đến.

Sau khi thêm điều này, tôi được nhắc nhập cụm mật khẩu khi lần đầu tiên khởi chạy git bash và sau đó tôi có thể kết nối với github bằng khóa SSH (mà không phải nhập lại cụm mật khẩu). Hơn nữa, ssh-add-L báo cáo rằng thực sự có một khóa. Vì vậy, mọi thứ dường như được thiết lập chính xác!

Tuy nhiên, tôi vẫn nhận được "Lỗi khi đọc độ dài phản hồi từ ổ cắm xác thực". lỗi.

Bất kỳ ý tưởng nào? Điều này làm việc cho đồng nghiệp của tôi (cùng tệp deploy.rb) có máy phát triển của nó là Linux.

+0

Tôi đã gặp sự cố chính xác với đồng nghiệp cố gắng triển khai từ cửa sổ. Hoạt động tốt cho tôi trong Mac OS X 10.7 – kayaker243

Trả lời

4

Đây là lỗi từ net-ssh là described here

+2

Tôi không chắc liệu lỗi được mô tả trên trang đó có giống hệt với lỗi tôi thấy hay không - các thông báo lỗi khác nhau. Tuy nhiên, trang đó không tham chiếu đến [vấn đề đã gửi về chuyển tiếp tác nhân và Windows] (https://github.com/net-ssh/net-ssh/issues/55), vì vậy nếu điều đó được khắc phục, nó có thể sắp xếp mọi thứ cho tình hình của tôi quá mặc dù lỗi cụ thể khác nhau. Tôi đã thực sự chuyển sang Linux ngay bây giờ (vì các lý do khác), do đó, đó là một cách để giải quyết vấn đề ;-) – Sam

+0

Rõ ràng nó đã được sửa ngay bây giờ: [Hỗ trợ cuộc thi được hỗ trợ] (https://github.com/net-ssh/net -ssh/pull/140) – StormPooper

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