惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
F
Fortinet All Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
V
Visual Studio Blog
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
L
LangChain Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
P
Proofpoint News Feed
博客园_首页
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - CharyGao

Spring 解决循环依赖为什么需要三级缓存,而不是两级缓存? SpringBoot服务优雅停机 Java 对接全球股票实时报价:高可用架构与异常处理 OpenAI Codex AI降智解决方案, 原因解析与系统提示词修改指南 OpenClaw vs Coze/Dify/n8n 帮你半小时内选对合适的AI Skills 热潮过去后,我重新理解了 AI Agent 的方向 智读致用|《埃隆之书》 《一人企业》 一人公司:The Agency 免费“雇佣“144个AI专家,虚拟团队走进现实 用微软Agent Framework打造智能博客生成系统+AI智能体军团 告别加班(第二期):月报还是Word排版?本地AI解您愁 居然可以在 Claude 桌面端用三方模型了! Claude Code 每次启动都要确认权限?一行配置永久解决 强程序员在 AI 时代的赚钱路径 骚操作来了!Claude编程的42个实战技巧大全 面试官:“简历写着熟练使用 Claude Code,连 simplify 代码审查命令都不知道!”,我:“那又如何呢?” SpringBoot+ResponseBodyEmitter异步流式推送神技 加密后的数据如何进行模糊查询? 最适合新手安装的10个小龙虾🦞 skills来了! 周末和孩子必看的亲子电影合集,陪伴孩子成长的每一步 拒绝代码泄露与“屎山”迷航:GitNexus纯本地知识图谱+可视化关系网,引发GitHub 8800星狂欢 还原BatchEncryption(201610版本)混淆的批处理文件 用上这个Skill,你的Claude Code/Codex 将会比别人快5倍 -- 用分布式思维驯服AI任务编排 前端项目中定义vs code要安装的插件 vscode中claude code插件代理地址设置 2026新手必学:GPT-5.5高效提示词指南 解决 URLEncoder.encode 编码空格变 + 号 Springboot通过谷歌Kaptcha 组件,生成图形验证码 HTTP 与 SpringBoot 参数提交与接收协议方式 SpringBoot多线程池配置
98.5% 的人都不知道:SSH 居然还有个“隐藏菜单”
charygao1990 · 2026-05-21 · via 博客园 - CharyGao

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 ~^Z tmux
本质 挂起进程 会话管理器
作用范围 当前 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 卡死之后,还能用。