หนึ่งสามารถส่งคำสั่งไปยังเซสชัน“ Inner” ssh ได้อย่างไร


32

รูปภาพสถานการณ์ที่ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ (ซึ่งเราจะเรียกว่า "Wallace") จากเครื่องของฉันและจากนั้นฉันsshไปยังเซิร์ฟเวอร์อื่น (ซึ่งเราจะเรียกว่า "Gromit"):

laptop ---ssh---> Wallace ---ssh---> Gromit

จากนั้นเซสชั่น ssh จากวอลเลซไปที่ Gromit แขวนและฉันต้องการที่จะฆ่ามัน ถ้าฉันป้อน~.เพื่อฆ่า ssh มันจะฆ่าเซสชัน ssh จากแล็ปท็อปของฉันไปยัง Wallace เนื่องจาก~ถูกดักจับโดยเซสชัน ssh นั้นและ.ถูกใช้เป็นคำสั่งเพื่อฆ่าเซสชัน ฉันจะส่งคำสั่งไปยังเซสชัน ssh ระหว่าง Wallace และ Gromit ได้อย่างไร ฉันจะฆ่า ssh "ภายใน" ของฉันได้อย่างไร


FYI: รูปแบบแป้นพิมพ์บางรูปแบบอาจต้องกดปุ่ม '~' สองครั้งเพื่อพิมพ์อักขระ '~' หนึ่งตัว ฉันมักจะใช้หน้าจอดังนั้นเมื่อการเชื่อมต่อ ssh หายไปฉันสามารถเริ่มต้นเชลล์ใหม่เพื่อฆ่าเซสชันนี้
คณิตศาสตร์

คำตอบ:


42

เพิ่มเครื่องหมายตัวหนอนอื่น (เช่นพิมพ์~~.) ตัวหนอนที่ต่อเนื่องแต่ละตัวจะถูกกินโดยเซสชันด้านนอกสุดของ ssh ซึ่งยังไม่ได้กิน แต่ตัวละครตัวต่อไปจะเป็นตัวหนอนอีกตัวหนึ่งมันจะถูกส่งผ่านไปยังเซสชันถัดไป

ถ้าจาก gromit 1คุณไปที่โฮสต์ที่สาม (ลองเรียกว่า wensleydale) จากนั้น~~~.จะลดเซสชันลงไปที่ wensleydale และกลับไปที่พรอมต์ gromit

1และเป็นเซิร์ฟเวอร์ที่ยอดเยี่ยมนั่นคือ; ฉันได้ยินคำกล่าวของผู้พัฒนา "cracking โฮสต์ gromit" บ่อยแค่ไหน


2
ที่เกี่ยวข้อง: The Telnet Song
voretaq7

1
โอ้มันช่างน่าอัศจรรย์ ฉันไม่อยากจะเชื่อเลยว่าฉันไม่เคยเจอมาก่อน
MadHatter รองรับโมนิก้า

มันจะดีถ้ามีวิธีที่จะได้รับผลตอบรับภาพของสแต็คไกลเท่าไหร่ในกรณีที่คุณมีlaptop --> Wallace --> Gromit --> Shaun --> Timmyหรือสิ่งที่บ้าเช่นนั้น ...
iconoclast

-2

คุณสามารถออกคำสั่งโดยพลการและจับเอาท์พุทจากเปลือกในสุดเป็นตัวแปร

export output=`echo some_cmd | ssh user@host |  echo some_cmd2 | ssh user2@host2`

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