You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过SSH连接Gerrit GSQL无法使用上箭头调取历史命令

这个问题我之前也碰到过,核心原因是两种SSH会话的终端环境完全不同,具体拆解如下:

问题根源

  • 直接SSH登录远程主机时,你启动的是一个交互式登录shell:远程Ubuntu的shell会自动加载你的个人配置(比如~/.bashrc、~/.inputrc),初始化终端的行编辑功能(依赖readline库),所以上下箭头能被正确解析成调用历史命令的操作。
  • 而你用ssh <gerrit host>:29418 gerrit gsql这种方式时,属于非交互式非登录会话:远程端不会为这个临时命令加载shell的交互配置,gerrit gsql运行在没有readline支持的原始终端环境里,终端发送的箭头键转义序列(就是你看到的^[[A这类字符)无法被解析,只能直接显示出来。

解决办法

快速临时修复:强制分配伪终端

给SSH命令加上-t参数,强制远程端分配一个伪终端(pseudo-terminal),让gerrit gsql运行在交互式环境下:

ssh -t <gerrit host>:29418 gerrit gsql

执行这个命令后再按上下箭头,就能正常调用历史查询语句了。

长期便捷优化:配置SSH别名

如果经常需要使用这个命令,可以在本地Windows的SSH配置文件里(比如Git Bash/Mingw64下的~/.ssh/config,没有的话直接新建一个)添加以下配置:

Host gerrit-gsql
    HostName <你的Gerrit主机地址>
    Port 29418
    RequestTTY force
    RemoteCommand gerrit gsql

之后你只需要在终端输入ssh gerrit-gsql,就能直接进入带历史功能的GSQL环境了。

内容的提问来源于stack exchange,提问作者ObigOne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:10:13