在Linux系统中通过SSH连接远程服务器时,若需要同时管理多个SSH会话,无需反复断开重连,使用SSH内置的退出符即可实现会话的快速切换,大幅简化多服务器管理的操作流程。

SSH退出符基础概念
SSH退出符是SSH客户端提供的一组快捷键组合,默认以~(波浪号)作为引导字符,配合其他按键实现会话管理功能。其中最常用的就是切换SSH会话的退出符,它的作用是暂时挂起当前的SSH连接,回到本地终端,后续可以重新恢复该会话。
需要注意,SSH退出符的引导字符~只有在行首输入时才会生效,如果前面有其他字符,SSH会将其识别为普通输入内容,不会触发退出符功能。
使用SSH退出符切换会话的具体步骤
第一步:建立第一个SSH连接
首先在本地Linux终端中发起第一个SSH连接,连接到第一台远程服务器:
# 连接到第一台远程服务器,用户为root,服务器地址为192.168.0.1 ssh root@192.168.0.1
连接成功后会进入第一台服务器的命令行界面,此时可以正常执行相关操作。
第二步:使用退出符挂起当前会话
当需要切换到其他SSH会话时,先按下回车键确保当前输入行是空行,然后依次按下~和Ctrl+Z组合键,此时当前SSH会话会被挂起,回到本地终端,同时终端会输出类似如下的提示信息:
[1]+ Stopped ssh root@192.168.0.1
这里的[1]是挂起的SSH会话的任务编号,后续恢复会话时会用到。
第三步:建立第二个SSH连接
回到本地终端后,可以继续发起第二个SSH连接,连接到另一台远程服务器:
# 连接到第二台远程服务器,用户为root,服务器地址为192.168.0.2 ssh root@192.168.0.2
连接成功后即可进入第二台服务器的操作界面,执行需要的操作。
第四步:切换回之前的SSH会话
当需要在两个SSH会话之间切换时,使用fg命令即可恢复之前挂起的会话。如果只挂起了一个SSH会话,直接执行如下命令即可:
# 恢复最近挂起的会话 fg
如果挂起了多个SSH会话,可以通过任务编号指定恢复哪一个,比如恢复编号为1的会话:
# 恢复任务编号为1的挂起会话 fg 1
执行命令后会直接回到对应SSH会话的操作界面,之前的操作上下文会完全保留。
相关实用技巧
- 可以通过
jobs命令查看当前所有挂起的SSH会话,方便确认需要恢复的会话编号:# 查看所有挂起的任务 jobs
- 若需要完全断开某个挂起的SSH会话,可以使用
kill命令加上会话的任务编号,比如断开任务编号为1的会话:# 终止任务编号为1的挂起会话 kill %1
- 如果觉得默认的
~引导字符不方便输入,可以通过修改SSH客户端的配置文件自定义退出符的引导字符,配置文件路径为~/.ssh/config,添加如下内容即可修改:# 自定义SSH退出符引导字符为` EscapeChar `
常见问题与解决方法
如果输入~Ctrl+Z后没有触发挂起功能,首先检查是否在行首输入,若前面有字符需要先按回车清空输入行。如果还是不生效,检查SSH配置中是否禁用了退出符功能,打开~/.ssh/config文件,确认没有EscapeChar none这样的配置项,若有则删除该配置即可恢复退出符功能。
另外,若恢复的SSH会话出现卡顿,可能是网络波动导致,此时可以再次挂起会话后重新恢复,通常可以恢复正常连接。