Linux

ssh -> screen -> ssh - 如何在不殺死原始 ssh 會話的情況下殺死遠端屏蔽 ssh

  • September 2, 2015

我在工作的開發盒上保持一個螢幕會話,我在工作時通過 ssh 進入我的開發盒並恢復我的螢幕會話。從那裡,我希望到其他機器。

有時,當我通過 ssh 連接到的遠端主機不允許我完全斷開連接時,我發現自己從我已經遠端螢幕會話通過 ssh連接*到遠端主機。*所以我最終需要強制我的遠端(第二個)ssh 會話終止而不影響連接到螢幕的原始 ssh 會話。我知道殺死 ssh 是用 a 完成的enter ~.,但是就像我說的,我的本地 ssh 客戶端攔截了該組合鍵,只需要將 ssh 重新連接到我的開發盒。

有人遇到過這個嗎?如何在不終止我原來的 ssh 會話的情況下終止螢幕中的遠端 ssh 會話?我無法在螢幕上找到任何合適的東西來做到這一點。這也適用於額外的跳躍 IE ssh -> screen -> ssh -> ssh(無法乾淨地註銷)<-想要強制終止此 ssh 會話。

我嘗試執行enter ~~.,它會終止第二個 ssh 會話,並且這種方法有效。但是,對於說第三、第四或更多的跳躍來說,這還不夠好。

有一個解決方案可以很好地工作,無論我被 ssh 嵌入到其他機器中。

要終止第 n 個 SSH 會話,請鍵入&lt;enter&gt;,然後鍵入 2^(n-1) ~,然後鍵入.。(~~發送轉義字元;因此,兩個波浪號將導致第一個 SSH 將其發送到第二個 SSH,然後第二個 SSH 將拾取點並死亡。根據需要進行更深嵌套的推斷。)

我也有類似的情況;我的解決方案是在開發盒上安裝 Mosh,它不會接收 SSH 的轉義序列(但有自己的)。這從整個事物中剝離了一層,這使事情變得更容易。

引用自:https://unix.stackexchange.com/questions/227123