Làm thế nào người ta có thể gửi lệnh đến phiên ssh bên trong tinh ranh?


32

Hình dung một kịch bản trong đó tôi đã đăng nhập vào một máy chủ (mà chúng tôi sẽ gọi là "Wallace") từ máy cục bộ của tôi và từ đó tôi sshvào một máy chủ khác (chúng tôi sẽ gọi là "Gromit"):

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

Sau đó, phiên ssh từ Wallace đến Gromit bị treo, và tôi muốn giết nó. Nếu tôi nhập vào ~.để giết ssh, nó sẽ giết phiên ssh từ máy tính xách tay của tôi sang Wallace, vì ~nó bị chặn bởi phiên ssh đó và .được coi là một lệnh để giết phiên. Làm cách nào để gửi lệnh đến phiên ssh giữa Wallace và Gromit? Làm thế nào để tôi giết ssh "bên trong" của tôi?


FYI: Một số bố cục bàn phím có thể yêu cầu hai lần nhấn phím '~' để in một ký tự '~'. Tôi thường sử dụng màn hình vì vậy khi mất kết nối ssh, tôi chỉ có thể bắt đầu một shell khác giết phiên này.
toán

Câu trả lời:


42

Thêm một dấu ngã khác (tức là, loại ~~.). Mỗi dấu ngã liên tiếp được ăn bởi phiên ssh ngoài cùng chưa ăn một lần, nhưng nếu nhân vật tiếp theo là một dấu ngã khác, nó sẽ được chuyển sang phiên tiếp theo.

Nếu, từ gromit 1 , bạn đã chuyển sang máy chủ thứ ba (hãy gọi nó là wensleydale), sau đó ~~~.sẽ thả phiên tới wensleydale và đưa bạn trở lại dấu nhắc về gromit.

1 Và thật là một máy chủ tuyệt vời; Tôi có thường xuyên nghe thấy một nhà phát triển nhận xét "bẻ khóa máy chủ, gromit" không?


2
Liên quan: Bài hát Telnet
voretaq7

1
Ồ, thật tuyệt vời; Tôi không thể tin rằng tôi đã không bắt gặp nó trước đây.
MadHatter hỗ trợ Monica

Sẽ thật tuyệt nếu có một số cách để có được phản hồi trực quan về việc bạn đang ở cách xa ngăn xếp, trong trường hợp bạn có laptop --> Wallace --> Gromit --> Shaun --> Timmyhoặc một thứ gì đó điên rồ như thế ...
iconoclast

-2

Bạn có thể đưa ra các lệnh tùy ý và bắt đầu ra từ vỏ trong cùng thành một biến

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

1
Điều này rất thú vị, nhưng tôi không chắc nó liên quan đến câu hỏi như thế nào. Bạn có thể giải thích?
iconoclast
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.