我在工作时在开发框上运行一个屏幕会话,然后我进入我的开发框并在我工作时恢复我的屏幕会话.从那里,我希望其他机器.
偶尔,我发现自己已经从我已经远程屏幕会话ssh的远程主机ssh’ing,当我的ssh’ed远程主机不允许我干净地断开连接.所以我最终需要强制我的远程(第二)ssh会话死掉,而不会影响我连接到屏幕的原始ssh会话.我知道杀死ssh是用一个输入〜.来完成的,但就像我说的那样,我的本地ssh客户端拦截了这个key-combo,只需要将ssh重新连接到我的开发盒.
有没有遇到过这个?如何终止屏幕上的远程ssh会话而不杀死我原来的ssh会话?我无法在屏幕上找到任何适合它的东西.这也适用于额外的跳跃IE ssh – >屏幕 – > ssh – > ssh(无法彻底注销)< - 想强行杀死这个ssh会话.
我尝试运行输入~~.,它杀死了第二个ssh会话,这种工作.然而,说第三,第四或更多跳是不够的.
如果有一个解决方案可以工作,但深度嵌套我会很好地融入其他机器中.
解决方法:
要杀死第n个SSH会话,键入< enter>,然后2 ^(n-1)〜,然后..(~~发送转义字符;因此,两个tildes将导致第一个SSH将其发送到第二个SSH然后,它将拾取点并死亡.根据需要进行外推以进行更深的嵌套.)
我有类似的情况;我的解决方案是在开发盒上安装Mosh,它不会获取SSH的转义序列(但有自己的).这样就从整个事物中剥离了一层,这使事情变得更容易.
标签:linux,ssh,gnu-screen
来源: https://codeday.me/bug/20190816/1666949.html