Làm thế nào để làm cho putty để không phá vỡ phiên của tôi sau một thời gian?


34

Mỗi lần puttyđóng phiên sau một thời gian nếu nó không hoạt động.

Không có timetham số nào trên putty, vậy làm cách nào để giữ puttyphiên ssh của tôi luôn sống?

Câu trả lời:


15

Một điều khác để kiểm tra là nếu hệ thống của bạn đang thiết lập biến môi trường TMOUT. Để kiểm tra điều này bạn chỉ cần làm:

env | grep TMOUT

hoặc là

echo $TMOUT

Nếu nó được đặt, bạn có thể thay đổi hoặc bỏ đặt nó. Để thay đổi giá trị:

export TMOUT=3600

Trong đó số là số giây cho đến khi bạn đăng xuất. Nếu không, hãy đặt nó để tắt tính năng:

unset TMOUT

Lưu ý, có thể là quản trị viên hệ thống của bạn đã đặt điều này vì lý do bảo mật. Vì vậy, nếu bạn không phải là quản trị viên hệ thống, bạn có thể muốn kiểm tra điều này trước khi tự thay đổi bất cứ điều gì.


48

Kích hoạt tính năng giữ SSH bằng cách thay đổi cài đặt sau thành giá trị dương:

Trang kết nối của hộp thoại cấu hình PuTTY

Giá trị 300 nên đủ trong hầu hết các trường hợp. (5 phút.) Điều này khiến PuTTY gửi các gói null SSH đến máy chủ từ xa theo định kỳ để phiên không hết thời gian.

Lưu ý rằng chúng tôi không muốn SO_KEEPALIVEtùy chọn thấp hơn trên trang đó. Đó là một cơ chế cấp thấp hơn nhiều, chỉ được sử dụng tốt nhất khi giao thức cấp ứng dụng không có cơ chế giữ riêng. SSH có, vì vậy chúng ta không nên sử dụng các thủ tục TCP trong trường hợp này.

Có những thứ khác có thể khiến kết nối bị giảm, nhưng đây là điều đầu tiên cần thử. Nếu nó không hoạt động, bạn cần xem xét những thứ khác: thời gian chờ VPN, thời gian chờ của bộ định tuyến, thay đổi cài đặt trên máy chủ SSH từ xa, kết nối không ổn định, v.v.


3
Hoặc chạy một cái gì đó tạo ra đầu ra liên tục như topkhi bạn đi vắng.
LawrenceC

1
@ultrasawblade: Đó là sửa băng keo; nó chỉ đơn thuần là điều trị triệu chứng nhưng không giải quyết được vấn đề thực sự.
Kevin M

Cấu hình này có áp dụng cho Windows CLI không? Ý tôi là, thay vì lưu phiên, tôi tạo liên kết đến putty.exe chuyển thông tin đăng nhập dưới dạng đối số (mật khẩu putty.exe -l root -pw), nếu không, có đối số nào để áp dụng tùy chọn này thông qua CLI không?
Mc Kernel

3
Đây là một giải pháp tuyệt vời, đặc biệt là khi bạn đang làm việc trên một kết nối không ổn định và bạn không phải thực hiện một thay đổi nào cho máy chủ (không giống như giải pháp được chấp nhận).
itoctopus

Có ai biết làm thế nào để xác định điều này thông qua dòng cmd?
Janac Meena

8

Ngoài các câu trả lời khác, tôi khuyên bạn nên chạy screenđể có thể quản lý phiên ngay cả khi putty chấm dứt (kết nối sắp chết, vpn không hoạt động, v.v.).


6

Kiểm tra tùy chọn sau trong PuTTY:

nhập mô tả hình ảnh ở đây


Đáng buồn thay, SO_KEEPALIVE dường như chỉ được gửi mỗi vài giờ (ít nhất là theo mặc định), vì vậy một cái tên tốt hơn cho họ sẽ là "kiểm tra xem đã chết" LOL
rogerdpack

3

Chỉ cần chạy cái này trên putty của bạn, đảm bảo, để kích hoạt phiên của bạn cứ sau 10 phút.

 while true; do date; sleep 600; done

Tôi luôn chạy cái này trên máy chủ của tôi và nó không hoạt động.
cokedude

1

Nếu không có cách nào ở trên không giúp được gì,
Bạn phải thay đổi cấu hình sshd hệ thống của bạn!
LƯU Ý R, NG, BẠN S NE CẦN GIẤY PHÉP ROOT CHO NÀY!

Chỉnh sửa sshd_config tập tin của bạn , trong trường hợp của tôi nó đã được định vị/etc/ssh/sshd_config

nội dung là:

ClientAliveInterval 300  
ClientAliveCountMax 0

thay đổi thành:

ClientAliveInterval 6000  
ClientAliveCountMax 3

Đừng quên

service sshd restart

1

Bạn có thể sử dụng toplệnh trong dấu nhắc shell. Điều này sẽ giữ cho phiên của bạn còn sống.


Điều này có vẻ như một cách giải quyết hơn là một giải pháp.
Kusalananda

@Kusalananda Tôi nghĩ cách giải quyết cũng có thể là giải pháp.
peterh nói phục hồi Monica

0

Trong Connection>SSHmenu putty , sử dụng các giá trị sau như Remote command: bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT').

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.