กระบวนการ SSH ไม่ถูกฆ่าบนเครื่องระยะไกลเมื่อระบบระยะไกลตัดการเชื่อมต่อโดยไม่คาดคิด


8

ฉันมีคำถามที่ฉันไม่สามารถหาคำตอบได้ ฉันมีคอมพิวเตอร์สองเครื่องซึ่งทั้งสองนี้ใช้ Ubuntu 12.04 ฉันเก็บคอมพิวเตอร์ไว้ที่บ้านและใช้ SSH เพื่อเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่น ("ระยะไกล") คอมพิวเตอร์ระยะไกลสามารถเชื่อมต่อกับคอมพิวเตอร์ที่บ้านได้โดยไม่มีปัญหา คอมพิวเตอร์ระยะไกลยังมี SetAliveInterval ตั้งค่าเป็น 60 ใน / etc / ssh / ssh_config เพื่อให้การเชื่อมต่อไม่ตายถ้าฉันก้าวออกจากคอมพิวเตอร์สักครู่

บางครั้งการเชื่อมต่ออินเทอร์เน็ตของฉันบนคอมพิวเตอร์ระยะไกลจะหยุดชะงัก การขัดจังหวะทางอินเทอร์เน็ตทำให้อุโมงค์ SSH ของฉันปิด (แน่นอน) เมื่อฉันคืนค่าการเชื่อมต่ออินเทอร์เน็ตและเชื่อมต่อกับคอมพิวเตอร์ที่บ้านโดยใช้อุโมงค์ SSH ใหม่ แต่ฉันสามารถเห็นได้#ps axว่ากระบวนการเชื่อมต่อ SSH เก่ายังคงทำงานอยู่ ปัญหานี้เป็นปัญหาเพราะฉันใช้โฮมไดเร็กตอรี่ที่เข้ารหัสบนคอมพิวเตอร์ที่บ้านซึ่งไม่อนุญาตให้เข้ารหัสไฟล์อีกครั้งจนกระทั่งการเชื่อมต่อ SSH (ตอนนี้ตาย) ถูกทำลาย

มีวิธีการตั้งค่า sshd_config บนคอมพิวเตอร์ที่บ้านหรือไม่เพื่อให้ตรวจพบโดยอัตโนมัติเมื่อการเชื่อมต่อเสียชีวิตและสิ้นสุดลงหรือไม่

คำตอบ:


5

ลองจอหรือtmux ที่ฝั่งเซิร์ฟเวอร์หรือทั้งสองด้านหากคุณต้องการ:

sudo apt-get install tmux

หลังจากเข้าสู่ระบบเริ่มต้นtmux

tmux

หากการเชื่อมต่อหยุดให้ล็อกอินอีกครั้งผ่านsshและเชื่อมต่อเซสชันtmux อีกครั้ง วิธีค้นหาหมายเลขเซสชัน:

tmux ls

ผลลัพธ์อาจเป็นดังนี้:

0: 1 windows (สร้างอังคาร 30 ธันวาคม, 19:20:40 2012)

เชื่อมต่อกับเซสชั่นที่มีหมายเลขtmuxดังนี้:

tmux attach -t 0

ถ้าอย่างนั้นคุณก็กลับมาตรงจุดที่คุณทิ้งไว้ คุณไม่จำเป็นต้องฆ่าเซสชัน พวกเขาแค่รอการมาเยือนครั้งต่อไปของคุณ หรือถ้าคุณต้องการฆ่าเซสชัน ...

ในฝั่งเซิร์ฟเวอร์ให้ดูที่/etc/ssh/sshd_configการตั้งค่าสำหรับClientAliveIntervalและClientAliveCountMax ( man 5 ssh_config)

ClientAliveInterval 300
ClientAliveCountMax 0

เมื่อสิ่งเหล่านี้ถูกเปลี่ยนเป็นความต้องการของคุณแล้วให้รีสตาร์ทเซิร์ฟเวอร์ SSH

sudo /etc/init.d/ssh restart

300 คือวินาที (ห้านาที)


นี่คือสิ่งที่ฉันกำลังมองหา! ฉันจะเริ่มต้นด้วย ClientAliveInterval และจะลองใช้ tmux ด้วยเช่นกัน ขอบคุณ!
JL

1
ทางเลือกที่สามนอกเหนือจากหน้าจอและ Tmux เป็นByobu : เว็บไซต์ , วิกิพีเดีย จากเว็บไซต์: "แต่เดิมมันถูกออกแบบมาเพื่อมอบการปรับปรุงที่สง่างามให้กับหน้าจอ GNU ที่ใช้งานได้จริงและใช้งานได้จริงสำหรับการแจกจ่ายเซิร์ฟเวอร์ Ubuntu ตอนนี้ Byobu ได้รวมโพรไฟล์ที่ได้รับการปรับปรุง สำหรับทั้งตัวจัดการหน้าต่างหน้าจอ GNU และเทอร์มินัลมัลติเพล็กเซอร์ของ Tmux ที่ทันสมัยกว่าและทำงานบนการกระจาย Linux, BSD และ Mac ส่วนใหญ่ "
sierrasdetandil

1

คุณสามารถลองmoshติดตั้ง moshแทน SSH ที่สร้างขึ้นบน SSH มันรองรับและการโรมมิ่งและการเชื่อมต่อเป็นระยะดังนั้นเซสชัน Mosh (SSH) ของคุณจะดำเนินการต่อจากจุดที่คุณค้างไว้เมื่อใดก็ตามที่การเชื่อมต่ออินเทอร์เน็ตของคุณได้รับการสร้างขึ้นอีกครั้งหลังจากการหยุดชะงัก

คุณจะต้องติดตั้ง Mosh บนเครื่องทั้งสอง

อ้างอิง:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.