98.5% 的人都不知道:SSH 居然还有个“隐藏菜单”

你有没有遇到过这种情况:SSH 卡住了,Ctrl+C 没反应,只能关窗口重来?
其实不用这么麻烦。
SSH 自带一个“逃生命令”,按两下键就能强制退出。但知道的不多,堪称 SSH 隐藏菜单

98.5% 的人都不知道:SSH 居然还有个“隐藏菜单” 1

与平时用鼠标操作电脑不同,SSH 专为键盘而生,它通过命令行来控制电脑,无论是 Windows、macOS 还是 Linux 都适用。

但无论是老手还是新手,98.5% 的人可能都不知道,SSH 居然还有个隐藏菜单。

SSH 隐藏菜单

现在就打开你的终端(什么是终端?),然后输入 ~?

98.5% 的人都不知道:SSH 居然还有个“隐藏菜单” 2

青小蛙真的第一次知道这个东西,非常有趣啊。

先来解释下每一项的功能:

(注意:使用时,都需要先输入一个回车)

~. 强制断开:客户端本地立即执行

这将强制断开当前 SSH 连接,无论远程是否卡死、网络是否异常都可以生效。

当程序卡住,或者网络问题导致终端无响应的时候,就可以输入:回车 ~.来立即断开连接。


~B 发送 BREAK 信号

向远程系统发送 BREAK 信号,多用于串口或网络设备等特殊场景。

基本没用(可以忽略)

只有在连接了串口、交换机、嵌入式设备后才有用,可以打断启动流程、进入调试模式、控制界面等。


~R 重新协商密钥

请求 SSH 重新进行加密密钥协商(rekey),用于刷新加密状态。

无任何响应…也不知道有何用途。


~v / ~V 调整日志级别

动态增加(~v)或减少(~V)SSH 的日志输出详细程度,用于调试连接问题。

~R~v 可以联合起来看,就能看到刷新密钥的日志了:

98.5% 的人都不知道:SSH 居然还有个“隐藏菜单” 3

~^Z 挂起 SSH

~ + ctrl + z,这可能是最有用的一个功能了,挂起当前 SSH 连接,并返回本地终端。使用 fg 恢复。

有点像 tmux,但又不太一样:

功能SSH ~^Ztmux
本质挂起进程会话管理器
作用范围当前 SSH 进程多个终端/窗口
是否持久❌ 不持久✅ 持久
终端关闭后❌ 不能恢复✅ 还能恢复
能否多窗口❌ 不行✅ 可以

当有一个挂起的任务时,当前终端会提示无法退出:

98.5% 的人都不知道:SSH 居然还有个“隐藏菜单” 4

~# 查看当前端口转发

列出当前 SSH 连接中所有正在使用的端口转发(如 -L-R-D)。

比如 OpenClaw 就推荐使用 SSH 连接:

ssh -N -L 18789:127.0.0.1:18789 user@host

按理说应该可以检查到,但青小蛙表示测试失败,什么反应都没有。


~& 后台运行 SSH

将 SSH 放入后台继续运行,常用于连接正在关闭但还未完全结束的情况。

但注意,无法回去!

不像 tmux 可以恢复,使用 ~& 之后这个终端就没了,但进程还在运行。


~~ 输入波浪号

由于 ~ 是 SSH 控制前缀,输入两个 ~~ 才会向远程发送一个真实的 ~

也就是当你想要输入 ~ 的时候,需要发送两个 ~~


注意

这个菜单是 SSH 客户端自带的(这里指 OpenSSH 客户端,不是终端、PowerShell 等工具)。不是服务器中的 SSH 带有的。

所以当远程 SSH 卡死之后,还能用。

来源:@Rebane


原文:https://www.appinn.com/ssh-hidden-menu-most-people-dont-know/

写留言

Enable Notifications OK No thanks