บนเซิร์ฟเวอร์ linux คุณจะใช้เทอร์มินัลหลายตัวผ่านการเชื่อมต่อ ssh เดียวได้อย่างไร


15

ฉันมักจะพบว่าตัวเองกำลังเปิดการเชื่อมต่อหลาย ssh เพื่อดูไฟล์บันทึกหลายรายการพร้อมtail -fกัน

นี่ไม่ใช่ปัญหาเมื่อฉันอยู่ที่บ้านเพราะฉันใช้การเข้ารหัสคีย์สาธารณะสำหรับการเข้าสู่ระบบโดยไม่ใช้รหัสผ่าน อย่างไรก็ตามฉันมักจะใช้คอมพิวเตอร์ที่มหาวิทยาลัยเพื่อทำสิ่งนี้ดังนั้นฉันจึงไม่มีตัวเลือกในการใช้รหัสส่วนตัวของฉัน มันน่ารำคาญที่จะใส่รหัสผ่านของฉัน 4 หรือ 5 ครั้งเพื่อรับหน้าต่างเทอร์มินัลหลายเครื่อง

ฉันจะรับเทอร์มินัลหลายเครื่องผ่านการเชื่อมต่อเดียวได้อย่างไร

คำตอบ:


38

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

คู่มือCtrl+Aจะให้คุณทั้งหมดที่คุณต้องเริ่มต้นโดยค่าเริ่มต้นคำสั่งทั้งหมดจะถูกนำหน้าโดย ตัวอย่างเช่นการเรียกใช้วิธีใช้บนหน้าจอเพียงกดCtrl+Aจากนั้นกด?


ฉันเป็นผู้ดูแลระบบ linux มาหลายปีแล้วและใช้หน้าจอหลาย ๆ ครั้งต่อวัน

เซิร์ฟเวอร์ไม่สมบูรณ์หากไม่มีหน้าจอ
Gert M

2
หลังจากใช้หน้าจอในไม่กี่ชั่วโมงที่ผ่านมาฉันแทบจะไม่เชื่อเลยว่าฉันจะอยู่โดยปราศจากมัน ฉันใช้เวลา 5 ปีในการทำผิด
epochwolf

11

หน้าจอช่วยให้คุณมีเทอร์มินัลหลายตัวและอื่น ๆ (เช่นความสามารถในการแยกออกและเชื่อมต่อกับเซสชันของคุณอีกครั้ง)

หมายเหตุบางประการเพื่อให้คุณไป:

Ctrl-a c   create
Ctrl-a d   detach
screen -r  reattach
Ctrl-a a   toggle
Ctrl-a "   list

และบางคนแนะนำให้อ่าน:


4

ดูบทความสองบทความต่อไปนี้เกี่ยวกับการแบ่งปันการเชื่อมต่อ SSH:

http://fermiparadox.wordpress.com/2008/06/19/ssh-connection-sharing/
http://protempore.net/~calvins/howto/ssh-connection-sharing/

โดยพื้นฐานแล้วทำการค้นหา google บนการแชร์การเชื่อมต่อ sshและคุณจะพบบทความอื่นอีกมากมาย


1
น่าสนใจ ปัญหาหนึ่งคือหากการเชื่อมต่ออินเทอร์เน็ตของฉันลดลงฉันจะไม่สามารถเชื่อมต่อใหม่ได้โดยไม่ต้องลบซ็อกเก็ต หากฉันไม่สามารถเชื่อมต่อฉันจะเข้าสู่เซิร์ฟเวอร์เพื่อลบซ็อกเก็ตได้อย่างไร
epochwolf

คุณไม่จำเป็นต้องลบซ็อกเก็ตบนเซิร์ฟเวอร์มันเป็นเพียงการแบ่งปันฝั่งไคลเอ็นต์ ดังนั้นคุณจึงเรียกใช้ `ssh foo 'หนึ่งครั้งและสร้างซ็อกเก็ตบนเครื่องเดียวกับที่คุณรันคำสั่ง ssh foo เซิร์ฟเวอร์เห็นการเข้าสู่ระบบหลายครั้งใน ttys ที่แยกต่างหากดังนั้นจึงไม่ทราบว่าการเข้าสู่ระบบที่แยกต่างหาก "ปกติ" นั้นแตกต่างกัน
David Gardner

3

อาจเป็นไปได้ว่าคุณสามารถใช้การส่งต่อ X เพื่อเปิด xterms ระยะไกลหลายรายการบนเดสก์ท็อปของคุณ


เซิร์ฟเวอร์ไม่ได้ติดตั้ง X11 อีกทั้งไม่สามารถทำงานได้บนระบบ windows ที่ฉันไม่สามารถติดตั้งเซิร์ฟเวอร์ X ได้
epochwolf

เซิร์ฟเวอร์ Linux ไม่จำเป็นต้องมี X11 เพื่อเรียกใช้แอปพลิเคชันกราฟิกที่แสดงบนเดสก์ท็อปของคุณ นอกจากนี้ Cygwin X-Server ยังใช้งานได้ดีสำหรับการทำงานต่างๆเช่น Firefox จากกล่อง Linux ในบ้านของฉัน (โดยไม่ต้อง X ทำงานบนกล่องที่บ้าน) และพวกมันก็แสดงผลได้ดีบนแล็ปท็อป Windows ท้องถิ่นของฉัน
shapr

2

คุณไม่มีเหตุผลที่น่าสนใจว่าทำไมคุณไม่สามารถใช้กุญแจส่วนตัวจากระบบอื่น สร้างพวกเขาต่อเครื่องและเพิ่มคีย์ที่ใช้บังคับกับ authorized_hosts

ยังใช้หน้าจอ


การใช้คีย์ส่วนตัวในจำนวนที่คิดกับคอมพิวเตอร์สาธารณะเป็นความคิดที่ดีหรือไม่? โดยเฉพาะอย่างยิ่งเมื่อพิจารณาว่าฉันไม่ได้ใส่ข้อความรหัสผ่านบนคีย์
epochwolf

1
คุณจะไม่ใช้รหัสเดียวกับที่คุณใช้ที่อื่น - คุณจะสร้างรหัสใหม่ (พร้อมรหัสผ่าน) และเพิ่มกุญแจสาธารณะให้กับไฟล์ authorized_keys บนเซิร์ฟเวอร์ของคุณ ตั้งชื่อบางอย่างเช่น "portablekey" และนำออกจาก authorized_keys หากคุณคิดว่าอาจถูกบุกรุก
Neall

2

นอกจากนี้คุณยังอาจต้องการที่จะมองไปที่byobu มันเป็นรุ่นปรับปรุงของหน้าจอและฉันเชื่อว่าเป็นโครงการ Ubuntu แต่มันมาพร้อมกับมาตรฐาน Ubuntu 9.10 และใหม่กว่า

ฉันมักจะยังใช้หน้าจอโดยนิสัย แต่อยากจะพูดถึงทางเลือกใหม่นี้


1

หากสิ่งที่คุณกำลังใช้งานคือการปรับไฟล์หลาย ๆ ไฟล์คุณอาจสนใจมัลติทาสกิ้


ลิงค์ที่น่าสนใจ ฉันเพิ่งพูดถึงการใช้งานทั่วไปของฉัน ฉันต้องสลับระหว่างเสียงเรียกเข้าและ bash เพื่อค้นหาเส้นทางสำหรับสิ่งต่าง ๆ
epochwolf

1

คุณลักษณะหน้าจอที่ไม่ได้กล่าวถึงคือหน้าจอ "แยก" และมันจะยังคงรันคำสั่งใดก็ตามที่คุณใช้ในชุดหน้าจอนั้น เมื่อหน้าจอถูกถอดออกคุณสามารถออกจากระบบและทุกอย่างจะยังคงอยู่แม้หลังจากออกจากระบบ ฉันจะเริ่มหน้าจอแล้วทำหลายคำสั่ง c เพื่อสร้าง 'subscreens' ใหม่ ฉันสามารถสลับระหว่างพวกเขาและเริ่มการคอมไพล์หรือการประมวลผลข้อมูลที่ยาวนานและมั่นใจได้ว่าการเชื่อมต่อ VPN ที่เส็งเคร็งของฉันจะทำให้ทุกอย่างตายไปด้วย

หลังจากออกจากระบบคุณสามารถเข้าสู่ระบบอีกครั้งและใช้ 'screen -R' ซึ่งจะแนบคุณเข้ากับ sessoins ของหน้าจอที่มีอยู่อีกครั้ง


0

หากต้องการใช้screenกับsshพิมพ์

ssh -t <user>@<server> screen -r

( แหล่งที่มา ) ผู้ชาย ssh:

-t Force การจัดสรรเทอร์มินัลเทียม สิ่งนี้สามารถใช้เพื่อรันโปรแกรมบนหน้าจอโดยพลการบนเครื่องระยะไกลซึ่งมีประโยชน์มากเช่นเมื่อใช้งานบริการเมนู อ็อพชัน -t หลายตัวบังคับให้จัดสรร tty แม้ว่า ssh จะไม่มี tty โลคัล

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