Làm cách nào để giải quyết kết nối ssh bị đóng bởi máy chủ từ xa do không hoạt động?


14

Tôi hiện đang cố gắng để ssh đến một colo, sau 1 đến 2 phút không hoạt động, tôi nhận được:

superuser@thecolo:~$ Connection to 10.123.45.67 closed by remote host.
Connection to 10.123.45.67 closed.
mylocalmac:~ superuser$

Miễn là tôi đang gõ một cái gì đó trong thiết bị đầu cuối ssh, kết nối được giữ. Ngay sau 1 đến 2 phút không hoạt động đã xảy ra, tôi sẽ nhận được thông báo trên. Máy tôi đang cố gắng kết nối là phiên bản máy chủ 64 bit Ubuntu 12.04.1 LTS. Nó không phải là một máy chủ vật lý mà là một máy khách VMware. Tôi đang sshing từ một thiết bị đầu cuối mac.

Xin đừng nhầm lẫn câu hỏi này với những câu hỏi tương tự trên trang web này với từ khóa ssh_exchange_identificationtrong đó, nó không liên quan.

Câu trả lời:


17

Thêm phần sau vào $ HOME / .ssh / config của bạn và tất cả các kết nối ssh của bạn sẽ gửi TCPKeepAlive cứ sau 30 giây:

TCPKeepAlive yes
ServerAliveInterval 30

không thể tìm thấy tệp cấu hình trên máy chủ
insoftservice

Bạn có thể tạo tệp trong thư mục chính của mình nếu nó không tồn tại
balkian

9

Nếu bạn đang kết nối từ máy tính Linux, bạn có thể sử dụng một số tùy chọn trực tiếp từ dòng lệnh

TCPKeepAlive: Điều này sử dụng tùy chọn KEEPALIVE của giao thức TCP / IP để giữ cho kết nối tồn tại sau một khoảng thời gian không hoạt động được chỉ định. Trên hầu hết các hệ thống, điều này có nghĩa là 2 giờ. Vì vậy, với tùy chọn TCPKeepAlive được truyền cho SSH, máy khách SSH sẽ gửi một gói được mã hóa đến máy chủ SSH, giữ cho kết nối TCP của bạn luôn hoạt động.

ssh -o TCPKeepAlive=yes user@some.host.com

ServerAliveInterval: Điều này đặt khoảng thời gian chờ tính bằng giây, được chỉ định bởi bạn, từ đó nếu không có gói nào được gửi từ máy khách SSH đến máy chủ SSH, SSH sẽ gửi yêu cầu được mã hóa đến máy chủ để phản hồi TCP. Để thực hiện yêu cầu đó cứ sau 30 giây:

ssh -o ServerAliveInterval=30 user@some.host.com

Nguồn


0

Bạn cần "giữ gìn"

Tùy thuộc vào khách hàng của bạn, điều này có thể tầm thường hoặc chỉ dễ dàng - không nên khó hơn!

Ví dụ: trong putty , tùy chọn kết nối (đặt giữ giá trị khác không)


Tôi đặt chế độ giữ ở đâu? Trên máy chủ hoặc từ máy Mac của tôi? Tôi nên đặt giá trị đó ở đâu và giá trị được đề xuất là gì?
Thierry Lam

Keepalive sẽ có trên máy khách ... trong trường hợp của bạn, máy Mac của bạn. Sẽ có một lựa chọn ở đâu đó!
Andrew
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.