เชื่อมต่อ SSH หลายตัวกับระบบเดียวกัน - เป็นไปได้ไหม?


14

ฉันมีคอมพิวเตอร์ linux ที่ทำหน้าที่เป็นเซิร์ฟเวอร์ซึ่งสามารถรับการเชื่อมต่อ SSH ขาเข้าได้

เป็นไปได้หรือไม่ที่จะเชื่อมต่ออุปกรณ์หลายเครื่องพร้อมกันเช่นโทรศัพท์และแล็ปท็อปของฉันรวมถึงเดสก์ท็อปอื่น ๆ ไปยังเซิร์ฟเวอร์เดียวกันโดยใช้ SSH

ขอบคุณสำหรับความช่วยเหลือ


63
ทำไมคุณไม่ลองก่อนถาม
Dmitry Grigoryev

1
ไม่เพียงแค่นี้ แต่คุณสามารถมีลิงค์ได้หลายลิงค์ระหว่างระบบคู่เดียวกัน คุณอาจพบscreenหรือmoshมีประโยชน์หากคุณต้องการพฤติกรรม "Windows remote desktop" สำหรับบรรทัดคำสั่ง: อินเทอร์เฟซเดียวซึ่งส่งผ่านไปหลายลิงก์
pjc50

7
มี 2 ​​เหตุผลว่าทำไมฉันไม่ลองก่อนถาม สิ่งแรกคือการขาดศรัทธาที่ฉันมีในความเข้าใจของตัวเองเกี่ยวกับ linux - ถ้ามันได้ผลฉันจะยังคงไม่ไว้ใจความน่าเชื่อถือของมันถ้าฉันมาพึ่งมัน ประการที่สองคือชุมชน Superuser โดยทั่วไปแล้วพูดได้ดีและรวดเร็วในการช่วยเหลือผู้ที่ถาม - ขอบคุณชุมชน
Sam3000

คำตอบ:


50

คำตอบสั้น ๆ - ใช่ มันมักจะทำงานตามค่าเริ่มต้น

คำตอบที่ยาว - ขึ้นอยู่กับสิ่งที่คุณใช้สำหรับมันอาจช้าลงด้วยการเชื่อมต่อหลายอย่าง แต่นั่นเป็นปัญหาแบนด์วิดท์ไม่ใช่ปัญหา ssh


15

ใช่มันเป็นไปได้มันเป็นพฤติกรรมเริ่มต้น

วางใจ

คุณสามารถพึ่งพาถ้าคุณกำลังใช้รุ่นปรับปรุงของsshโปรโตคอลและไม่ได้เป็นอะไรมากไป 1

grep "Protocol"  /etc/ssh/sshd_config

Protocol 2คำสั่งดังกล่าวจะช่วยให้คุณ

ขีด จำกัด สำหรับการเชื่อมต่อ

คุณสามารถมองเห็นsshว่าเป็นวิวัฒนาการของการเข้ารหัสtelnetซึ่งเกิดในช่วงไกล '69 เพื่อให้สามารถเข้าถึงเซิร์ฟเวอร์จากระยะไกลได้ โปรดทราบว่าการsshเชื่อมต่อผ่าน TCP และสามารถส่งต่อเซสชัน X (เซสชันกราฟิก) ด้วย การทำงานหลายอย่างและผู้ใช้หลายคนนั้นเป็นลักษณะภายในของ Unix ... แม้ว่ามันจะไม่ได้ไร้ขีด จำกัด !!!

คุณสามารถดูข้อ จำกัดเหล่านั้นได้ในขีด จำกัด TCP และ SSH:

  • cat /proc/sys/net/core/somaxconnโดยทั่วไปคือ 128 เพื่อดูการเชื่อมต่อTCP ที่ยอดเยี่ยมสูงสุดที่คุณมี

    ตัวแปร kern.ipc.somaxconn sysctl (8) จำกัด ขนาดของคิวฟังสำหรับการยอมรับการเชื่อมต่อ TCP ใหม่ โดยปกติแล้วค่าเริ่มต้นที่ 128 จะต่ำเกินไปสำหรับการจัดการการเชื่อมต่อใหม่ที่มีประสิทธิภาพบนเว็บเซิร์ฟเวอร์ที่มีการโหลดจำนวนมาก

  • cat /proc/sys/net/core/netdev_max_backlogความยาวสูงสุดของคิวแพ็คเก็ต TCP
  • less /etc/security/limits.conf คุณสามารถค้นหาข้อ จำกัด สำหรับผู้ใช้
  • MaxSessionsใน/etc/ssh/sshd_config

    MaxSessions ระบุจำนวนเซสชันสูงสุดที่อนุญาตต่อการเชื่อมต่อเครือข่าย ค่าเริ่มต้นคือ 10

  • #MaxStartups 10:30:60มักจะแสดงความคิดเห็นใน/etc/ssh/sshd_configและโดยค่าเริ่มต้นตั้งค่าเป็น 10

    ระบุจำนวนสูงสุดของการเชื่อมต่อที่ไม่ได้ตรวจสอบพร้อมกันกับ SSH daemon ... ค่าเริ่มต้นคือ 10


อ้างอิง

  • man ssh, man sshdบนเครื่องของคุณ
  • หน้าคนของsshdหรือของsshd_config

2
somaxconnคือจำนวนสูงสุดของการเชื่อมต่อที่โดดเด่นนั่นคือจำนวนสูงสุดที่รับฟังได้ไม่ใช่จำนวนสูงสุดของการเชื่อมต่อ TCP [s] ที่คุณมีได้ จำนวนสูงสุดของการเชื่อมต่อ TCP ที่คุณมีคือขนาดที่ใหญ่กว่า 128 คำสั่งไม่เช่นนั้นเซิร์ฟเวอร์ในทางปฏิบัติจะไม่สามารถทำได้
user207421

@ejp ขอบคุณสำหรับจุดที่ฉันรีบและฉันพลาด "ใหม่" ก่อนที่จะเชื่อมต่อ BTW "โดดเด่น"แม่นยำยิ่งขึ้น ฉันเพิ่มบางคำเพิ่มเติมโดยหวังว่ามันชัดเจนยิ่งขึ้น
Hastur

MaxSessionsจำกัด จำนวนเซสชันแบบมัลติเพล็กซ์ในการเชื่อมต่อ TCP เดียว ( รายละเอียดเพิ่มเติม ) ดังนั้นจึงไม่ จำกัด ให้คุณเชื่อมต่อกับโฮสต์เดียวกันอีกครั้ง (ขีด จำกัด เริ่มต้นที่ 10 สำหรับเซสชัน ssh ทั้งหมดจะไร้สาระลองนึกภาพเว็บโฮสต์ที่ใช้ร่วมกันกับบัญชีผู้ใช้หลายร้อยหรือหลายพันบัญชีและอนุญาตให้ใช้เพียง 10 ssh เท่านั้น)
Josef พูดว่า Reinstate Monica

@Josef มันเขียนMaxSessions ระบุจำนวนสูงสุดของการประชุมเปิดรับอนุญาตต่อเชื่อมต่อเครือข่าย ,ไม่มีอะไรที่แตกต่างกัน (ตามที่รายงานในหน้าคน): อาจจะไม่ชัดเจนเพียงพอ ขอบคุณสำหรับการอ้างอิงเพิ่มเติมและขีดเส้นใต้จุดนี้ (หมายเหตุ: BTW การใช้งานทั่วไปของคอมพิวเตอร์ Linux ที่มี ssh ไม่ใช่เว็บโฮสต์ที่ใช้ร่วมกันกับบัญชีผู้ใช้ 10 ^ 5 + และในกรณีนี้การตั้งค่าเริ่มต้นไม่เหมาะสมตามคำจำกัดความ :-))
Hastur

6

ใช่มันคือทั้งหมด แต่สิ่งนี้ควรจะมีการกำหนดการใช้งาน คุณสามารถตั้งค่าเซิร์ฟเวอร์ ssh ของคุณเอง (อาจจะไม่ปลอดภัยและแย่กว่านั้น) ที่ไม่สามารถรองรับการเชื่อมต่อได้หลายตัว แต่ก็เหมือนกับ HTTP-Servers ทั่วไปที่แน่นอนว่ารองรับสิ่งนี้ openssh ก็ทำเช่นกัน

อันที่จริงนี่เป็นแนวคิดของ Unix: ระบบหลายผู้ใช้ที่เซิร์ฟเวอร์ทำงานทั้งหมดและเชื่อมต่อกับไคลเอนต์ขนาดเล็กเท่านั้น (เทอร์มินัล)


4

ใช่มันเป็นเรื่องธรรมดามาก แน่นอนถ้าใช้เป็นไฟล์เซิร์ฟเวอร์และโดยผู้ใช้หลายคนมันเป็นสิ่งจำเป็นอย่างยิ่ง SFTP ใช้ SSH และมีกิจกรรม EDI จำนวนมากที่ต้องพึ่งพาด้วยเช่นกัน

จากอุปกรณ์เป็นไปได้ที่จะทริกเกอร์เหตุการณ์ด้วยการเข้าสู่ระบบของผู้ใช้ที่กำหนดเอง (เช่น poweroff หรือรีบูต)

ให้พิจารณาด้วยว่า SCP (WinSCP มักใช้เพื่อเข้าถึงซอร์สโค้ด) และผู้ใช้ KDE ยังสามารถใช้ปลาได้ใน Konqueror

สิ่งที่น่าสังเกตก็คือการใช้พอร์ตเพิ่มเติมในกรณีที่สูญเสียระหว่างการบำรุงรักษา (อูบุนตูทำรีลีสอัพเกรดกล่าว)

ใช่แล้วฉันรวบรวมคุณไม่เคยเปิดเครื่อง PuTTY หลายเครื่องเลยเหรอ?


ไม่แปลกเลยที่ฉันไม่มี! แต่ขอบคุณสำหรับข้อมูลเพิ่มเติมคุณหมายถึงอะไรเกี่ยวกับพอร์ตเพิ่มเติมสำหรับการบำรุงรักษา
Sam3000

1
ในระหว่างการ relesase-upgrade จากรีโมตเทอร์มินัลมีความเสี่ยงที่ comms จะหายไป (รีสตาร์ท SSH หรือเครือข่ายพูด) หากสิ่งเหล่านี้ไม่สามารถสร้างขึ้นใหม่ได้บนพอร์ต 22 Ubuntu ให้พอร์ตทางเลือกอื่น 1022 โดยใช้อินสแตนซ์ SSH ตัวที่สอง การอัพเดตเกิดขึ้นใน "หน้าจอ" ซึ่งสามารถเข้าถึงได้ด้วยหน้าจอ -x / screen -r หลังจากทำการเชื่อมต่อใหม่และ sudo su (ดูที่ "หน้าจอ" และ "tmux") มีข้อมูลมากมายเกี่ยวกับสิ่งนี้
mckenzm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.