จะรักษา SSH ให้คงอยู่ได้อย่างไร?


12

ฉันจะทำให้การเชื่อมต่อ SSH ยังคงอยู่ได้โดยไม่ต้องใช้งาน เมื่อฉันใช้มันทำงานได้ดี แต่เมื่อฉันไม่ได้ใช้งานสักสองสามนาทีมันก็ตัดการเชื่อมต่อ เมื่อฉันได้รับอีเมลทุกครั้งที่ฉันเชื่อมต่อฉันจะรักษาเซสชัน SSH ให้คงอยู่ได้อย่างไร

หมายเหตุ: ใน.ssh/configไฟล์ของฉันที่ด้านบนฉันมี

Host *
ServerAliveInterval 3

แต่ดูเหมือนจะไม่ทำงาน


ลูกค้า SSH คืออะไร? 3 สั้นเกินไปใช้ช่วงเวลา 60 คุณยังสามารถใส่ใน / etc / ssh / ssh_config หากคุณมีการเข้าถึงรูท
Panther

*ควรเป็นทั้งหมดของพวกเขาใช่ไหม
NerdOfLinux

ฉันไม่คิดว่าใช้งานได้กับ PuTTY
Panther

1
ตรวจสอบ URL ต่อไปนี้สำหรับคำแนะนำPuTTy a2hosting.com/kb/getting-started-guide/accessing-your-account/ …
Haitham A. El-Ghareeb

คำตอบ:


11

คุณต้องระบุจำนวนครั้งและช่วงเวลาในการส่งแพ็คเก็ตไปยังเซิร์ฟเวอร์ คุณสามารถใส่บรรทัดต่อไปนี้ใน.ssh/configไฟล์ของคุณ:

Host examplehost
    Hostname examplehost.com
    ServerAliveInterval 180
    ServerAliveCountMax 2

สิ่งนี้จะส่งแพ็คเก็ตไปยังเซิร์ฟเวอร์ทุก ๆ 180 วินาที (3 นาที) และจะลองสองครั้งก่อนที่มันจะปิดการเชื่อมต่อหลังจากไม่ได้รับการตอบสนองจากลูกค้า


2
ฉันลืมเรื่องนี้ไปโดยสิ้นเชิงServerAliveCountMaxซึ่งอาจเป็นสิ่งที่แก้ไขปัญหาของฉันได้
NerdOfLinux

5

บนระบบปฏิบัติการ Linux และ Apple Mac OS X ~/.ssh/configไฟล์ดังกล่าวช่วยให้คุณสามารถระบุการตั้งค่า SSH ได้มากมายรวมถึงการเชื่อมต่อ SSH โดยทำตามขั้นตอนต่อไปนี้:

  1. ใช้เท็กซ์เอดิเตอร์ที่คุณต้องการเพื่อเปิด~/.ssh/configไฟล์บนเครื่องคอมพิวเตอร์ของคุณ หมายเหตุ: หากไม่มี.sshไดเร็กทอรีหรือไฟล์กำหนดค่าให้สร้างมันขึ้นมา

  2. เพิ่มบรรทัดต่อไปนี้ในไฟล์ปรับแต่ง โฮสต์ค่าสามารถเป็นชื่อใด ๆ ที่คุณต้องการ; มันเป็นเพียงฉลากสำหรับการตั้งค่าอื่น ๆ ชื่อโฮสต์ค่าพื้นที่ห่างไกลคุณต้องการที่จะเข้าถึง แทนที่example.comด้วยชื่อโดเมนของคุณ แทนที่ชื่อผู้ใช้ด้วยชื่อผู้ใช้บัญชีโฮสติ้งของคุณเอง:


    Host example
        Hostname example.com
        Port 7822
        User username
        ServerAliveInterval 240
        ServerAliveCountMax 2

ด้วยการกำหนดค่านี้ไคลเอ็นต์ SSH จะส่งแพ็คเก็ตไปยังเซิร์ฟเวอร์ทุก ๆ 240 วินาที (4 นาที) เพื่อให้การเชื่อมต่อมีชีวิตชีวา หากไคลเอ็นต์ไม่ได้รับการตอบกลับหลังจากพยายามสองครั้ง (ตามที่ระบุโดยการตั้งค่า ServerAliveCountMax) จะเป็นการปิดการเชื่อมต่อ

สำหรับข้อมูลโดยละเอียดเกี่ยวกับการตั้งค่าการกำหนดค่า SSH ทั้งหมดที่มีให้พิมพ์man ssh_configที่บรรทัดคำสั่ง

  1. บันทึกการเปลี่ยนแปลงไปยังไฟล์ปรับแต่ง

  2. เชื่อมต่อกับบัญชีของคุณโดยใช้ SSH ในการทำสิ่งนี้ให้พิมพ์ตัวอย่าง ssh โดยที่ตัวอย่างแสดงถึงค่าโฮสต์ที่คุณระบุในขั้นตอนที่ 2

ตรวจสอบการเชื่อมต่อ หากยังคงลดลงให้ค่อยๆลดการServerAliveIntervalตั้งค่าในไฟล์กำหนดค่าจนกว่าการเชื่อมต่อจะเสถียร

ตรวจสอบ URL ต่อไปนี้เพื่อดูรายละเอียดเพิ่มเติมhttps://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive


5

คุณสามารถเพิ่มอาร์กิวเมนต์เหล่านี้ในคำสั่ง ssh ได้เช่นกัน ...

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