插件窝 干货文章 Linux如何用SSH退出符切换SSH会话

Linux如何用SSH退出符切换SSH会话

会话 退出 SSH 输入 272    来源:    2025-04-27

在Linux中,使用SSH时可以通过退出字符(Escape Character)来管理会话,例如切换会话、挂起会话或查看连接状态。默认的SSH退出字符是~(波浪号),但必须在新行开头输入才会生效。


常用SSH退出符操作

以下是常见的SSH会话控制命令(均需先按Enter,然后输入~ + 命令键):

命令 功能说明
~. 立即终止当前SSH连接(如果会话卡死或无响应时使用)。
~Ctrl+Z~& 挂起当前SSH会话(返回本地Shell,会话在后台运行)。
~# 列出所有挂起的SSH会话(需先启用~&挂起功能)。
~B 发送SSH BREAK信号(用于某些需要中断的远程程序)。
~R 请求重新密钥交换(用于调试或安全场景)。
~? 显示所有支持的SSH退出符帮助

关键注意事项

  1. 必须在新行开头输入

    • 先按Enter,然后单独输入~(波浪号),再输入命令键(如.&)。
    • 如果输入后无反应,可能是:
      • 未在新行开头输入(前面有其他字符)。
      • 远程Shell正在运行程序(如vimtop),需先退出程序再尝试。
  2. 修改默认退出字符
    如果~与其他工具冲突(如tmux),可通过-e参数修改退出字符:

    ssh -e '@' user@host  # 将退出符改为`@`
    
  3. 恢复挂起的会话

    • 使用bgfg命令管理挂起的会话(需本地Shell支持作业控制)。
    • 或通过ssh命令重新连接(如果会话未超时)。

示例场景

1. 挂起当前SSH会话并恢复

# 1. 连接后挂起会话
[Enter]~Ctrl+Z
# 输出:[1]+  Stopped  ssh user@host

# 2. 查看后台会话
jobs
# 输出:[1]+  Stopped  ssh user@host

# 3. 恢复会话
fg %1

2. 强制终止卡死的SSH连接

# 直接终止当前连接(无确认)
[Enter]~.
# 输出:Connection to host closed.

扩展:通过终端多路复用工具(推荐)

如果频繁需要会话管理,建议使用tmuxscreen替代SSH退出符:

# 使用tmux创建持久会话
tmux new -s mysession
# 断开后重新连接
tmux attach -t mysession

这种方式更稳定,且支持多窗口、断线重连等高级功能。


通过合理使用SSH退出符或终端多路复用工具,可以高效管理远程会话。遇到问题时,先检查输入位置是否正确,或尝试~?查看帮助。