Ubuntu 26.04 使用 SecureCRT 连接后出现 start/end 字符串的解决方法
文章目录
一、问题现象
使用 SecureCRT 通过 SSH 连接 Ubuntu 26.04 后,登录界面和执行命令时出现类似以下内容:
Welcome to Ubuntu 26.04 LTS (GNU/Linux 7.0.0-31-generic x86_64)
* Documentation: https://docs.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
Last login: Wed Sep 16 22:05:46 2026 from 192.168.42.1
08;start=a51ac20a-1b26-42c7-b872-8e0a704d43fa;machineid=0893f2ffaa8c4521936195cc1dbb2ae1;user=liutest;hostname=liutest;bootid=03a5ec1f-d801-4884-8955-7594778dffcb;pid=00000000000000001356;type=shell;cwd=/home/liutestliutest@liutest:~$ ls -hl
08;start=177fd498-63e5-4e30-91dd-f8b2c70afb48;machineid=0893f2ffaa8c4521936195cc1dbb2ae1;user=liutest;hostname=liutest;bootid=03a5ec1f-d801-4884-8955-7594778dffcb;pid=00000000000000001356;type=command;cwd=/home/liutesttotal 0
08;end=177fd498-63e5-4e30-91dd-f8b2c70afb48;exit=success08;start=a51ac20a-1b26-42c7-b872-8e0a704d43fa;machineid=0893f2ffaa8c4521936195cc1dbb2ae1;user=liutest;hostname=liutest;bootid=03a5ec1f-d801-4884-8955-7594778dffcb;pid=00000000000000001356;type=shell;cwd=/home/liutestliutest@liutest:~$
这些内容会影响终端显示,但通常不会影响命令的正常执行。
二、问题原因
Ubuntu 26.04 默认启用了 systemd 的 Bash/OSC(Operating System Command)终端集成功能。
该功能会通过 Bash 环境变量,在命令执行前后向终端发送包含会话信息的控制序列,例如:
PROMPT_COMMAND="__systemd_osc_context_precmdline"
PS0="\$(__systemd_osc_context_ps0)"
这些控制序列可能包含以下信息:
machineid:系统机器 IDbootid:本次系统启动 IDuser:当前登录用户hostname:主机名pid:当前 Shell 进程 IDcwd:当前工作目录start、end:命令开始和结束标记
部分 SecureCRT 版本无法正确解析这些终端控制序列,因此会将它们当作普通文本直接显示出来,最终就出现了 08;start=...、08;end=... 等内容。
三、临时解决方法
可以先在当前 SSH 会话中执行以下命令进行测试:
PS0=''
PROMPT_COMMAND=()
然后执行一条普通命令,例如:
ls -hl
如果终端中不再出现 08;start=、08;end= 等字符串,说明问题已经确认。
这种方式只对当前会话有效,断开 SSH 或重新登录后会失效。
四、永久解决方法
方法一:直接追加到 .bashrc
执行以下命令:
cat >> ~/.bashrc <<'EOF'
PS0=''
PROMPT_COMMAND=()
EOF
然后重新加载配置:
source ~/.bashrc
也可以退出当前 SSH 会话后重新登录。
方法二:手动编辑 .bashrc
使用编辑器打开当前用户的 Bash 配置文件:
nano ~/.bashrc
在文件末尾添加:
PS0=''
PROMPT_COMMAND=()
保存后执行:
source ~/.bashrc
或者重新建立 SSH 连接。
五、验证是否生效
重新登录后,执行以下命令:
echo test
pwd
ls -hl
如果输出中不再出现类似下面的内容,说明问题已经解决:
08;start=...
08;end=...
machineid=...
bootid=...
正常情况下,终端输出应类似:
liutest@liutest:~$ echo test
test
liutest@liutest:~$ pwd
/home/liutest
六、注意事项
PROMPT_COMMAND 可能被其他工具使用,例如:
- 命令审计工具
- Git 状态提示
- 自动切换目录工具
- Shell 历史记录增强工具
- 终端集成功能
将其设置为空数组后,会关闭当前用户 Bash 的相关命令提示钩子。因此,如果 .bashrc 中原本配置了其他 PROMPT_COMMAND 功能,建议先备份配置文件:
cp ~/.bashrc ~/.bashrc.bak
如需恢复,可以编辑 ~/.bashrc,删除以下两行:
PS0=''
PROMPT_COMMAND=()
然后重新加载配置:
source ~/.bashrc
七、总结
该问题主要是 Ubuntu 26.04 的 systemd Bash 终端集成功能与 SecureCRT 的终端控制序列解析不兼容导致的。
解决步骤如下:
PS0=''
PROMPT_COMMAND=()
确认当前会话恢复正常后,将这两行加入:
~/.bashrc
即可在以后登录时自动生效。该操作只会关闭当前用户的终端标记功能,不会影响系统服务、SSH 服务或普通命令的执行。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/jxlhljh/article/details/165701882



