如何退出无响应的 ssh 会话

发布于 2023-01-20 16:23:29 字数 1033 浏览 202 评论 0

我们都知道,在 ssh session 中按下 Ctrl-c 或者 Ctrl-z 是不会退出 session 本身的。

一般都是通过 Ctrl-d 或者输入 exit 退出 shell 的方式来退出 session,但若由于网络的原因导致整个 session 挂起怎么办呢? 这个时候 ssh server 无法对输入任何命令做出响应,难道只能等待 session 超时退出吗?

通过查看 ssh 的 manpage,你会发现,ssh 本身是支持 escape character 的:

Escape 字符
     如果启用了伪终端, ssh 能够通过 escape 字符支持一组功能.

     单独的波浪符可以用 ~~ 送出去, 只要后面不跟下面列举的字符,
     也可以把它直接送出去.  escape 字符必须接在换行(newline)后面,
     这样才具有特别含义.  在配置文件中可以用 EscapeChar 命令更改 escape 字符,
     在命令行上可以用 -e 选项更改.

     已支持的 escape 命令 (假设是默认的 ‘~’) 有:

     ~.      断开连接

     ~^Z     把 ssh 送到后台

     ~#      列出转发的连接 (forwarded connection)

     ~&      当等待转发的连接/X11会话结束时, ssh 在后台退出登录

     ~?      显示 escape 字符的列表

     ~B      发送 BREAK 到远程主机

     ~C      打开命令行 (仅用于 -L , -R 和 -D 选项增加端口转发)

     ~R      请求连接的重建(rekeying) (仅用于SSH协议第二版, 且对方支持)

     ~V      降低错误输出的详细程度

     ~v      提高错误输出的详细程度

     ~~      输入 ~ 本身

所以,要从卡死的 ssh session 中退出,只需要输入 ~.<RET> 就可以了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

作妖

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

sevendreamyang

文章 0 评论 0

hsp

文章 0 评论 0

bobowiki

文章 0 评论 0

2282724674

文章 0 评论 0

蓝梦月影

文章 0 评论 0

南风起

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文