แต่ละครั้งputty
จะปิดเซสชั่นหลังจากเวลาถ้ามันไม่ได้ใช้งาน
ไม่มีtime
พารามิเตอร์ในการโป๊วดังนั้นฉันจะเก็บputty
เซสชัน ssh ของฉันยังมีชีวิตอยู่ได้อย่างไร
แต่ละครั้งputty
จะปิดเซสชั่นหลังจากเวลาถ้ามันไม่ได้ใช้งาน
ไม่มีtime
พารามิเตอร์ในการโป๊วดังนั้นฉันจะเก็บputty
เซสชัน ssh ของฉันยังมีชีวิตอยู่ได้อย่างไร
คำตอบ:
สิ่งที่ต้องตรวจสอบอีกอย่างก็คือหากระบบของคุณกำลังตั้งค่าตัวแปรสภาพแวดล้อม TMOUT หากต้องการตรวจสอบสิ่งนี้คุณสามารถทำได้:
env | grep TMOUT
หรือ
echo $TMOUT
หากตั้งค่าไว้คุณสามารถเปลี่ยนหรือยกเลิกการตั้งค่าได้ วิธีเปลี่ยนค่า:
export TMOUT=3600
โดยที่ตัวเลขคือจำนวนวินาทีจนกว่าคุณจะออกจากระบบ มิฉะนั้นจะไม่ตั้งค่าให้ปิดคุณลักษณะ:
unset TMOUT
หมายเหตุอาจเป็นไปได้ว่าผู้ดูแลระบบของคุณได้ตั้งค่านี้เพื่อเหตุผลด้านความปลอดภัย ดังนั้นหากคุณไม่ได้เป็นผู้ดูแลระบบคุณอาจต้องการตรวจสอบสิ่งนี้ก่อนที่จะเปลี่ยนสิ่งใด ๆ ด้วยตัวคุณเอง
เปิดใช้งาน KeepHostives SSHโดยเปลี่ยนการตั้งค่าต่อไปนี้เป็นค่าบวก:
ค่า 300 ควรพอเพียงในกรณีส่วนใหญ่ (5 นาที) สิ่งนี้ทำให้ PuTTY ส่งแพ็กเก็ต null SSH ไปยังโฮสต์ระยะไกลเป็นระยะเพื่อให้เซสชันไม่หมดเวลา
โปรดทราบว่าเราไม่ต้องการให้SO_KEEPALIVE
ตัวเลือกต่ำลงในหน้านั้น นั่นเป็นกลไกระดับล่างที่ดีที่สุดซึ่งจะใช้งานได้ดีที่สุดเมื่อโปรโตคอลระดับแอปพลิเคชันไม่มีกลไกแบบรักษาตัวเองเท่านั้น SSH ทำดังนั้นเราไม่ควรใช้ TCP keepalives ในกรณีนี้
มีสิ่งอื่น ๆ ที่อาจทำให้การเชื่อมต่อตก แต่นี่เป็นสิ่งแรกที่ควรลอง หากไม่สามารถใช้งานได้คุณจะต้องตรวจสอบสิ่งต่างๆเหล่านี้: หมดเวลา VPN, หมดเวลาเราเตอร์, เปลี่ยนการตั้งค่าบนเซิร์ฟเวอร์ SSH ระยะไกล, การเชื่อมต่อที่ไม่สม่ำเสมอ ฯลฯ
นอกเหนือจากคำตอบอื่น ๆ ฉันขอแนะนำให้ใช้screen
เพื่อให้สามารถจัดการเซสชันได้แม้ว่าสีโป๊วจะสิ้นสุดลง (การเชื่อมต่อกำลังจะตาย vpn กำลังจะลง ฯลฯ )
เพียงแค่เปิดใช้งานด้วยผงสำหรับอุดรูของคุณเพื่อให้แน่ใจว่าการเปิดใช้งานเซสชั่นของคุณทุก ๆ 10 นาที
while true; do date; sleep 600; done
หากไม่มีการข้างต้นไม่ได้ช่วย
คุณต้องเปลี่ยนการตั้งค่าระบบของคุณ!
โปรดทราบว่าคุณจะต้องมีสิทธิ์รูทสำหรับสิ่งนี้!
แก้ไขsshd_config
ไฟล์ของคุณ
ในกรณีของฉันมันตั้งอยู่/etc/ssh/sshd_config
เนื้อหาคือ:
ClientAliveInterval 300
ClientAliveCountMax 0
เปลี่ยนไป:
ClientAliveInterval 6000
ClientAliveCountMax 3
อย่าลืม
service sshd restart
คุณสามารถใช้top
คำสั่งในเชลล์พรอมต์ สิ่งนี้จะทำให้เซสชันของคุณยังมีชีวิตอยู่
ในฉาบเมนูใช้ค่าต่อไปนี้เป็นConnection>SSH
Remote command:
bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT')
top
เมื่อคุณไม่อยู่