kitty 终端ssh 命令远程无法正常输入命令
archlinux中使用kitty 终端,如果使用ssh 命令远程,会发现无法正常输入命令了,比如我按一下b,实际会出现两个b并且我无法按back键删除。而我用其他终端就可以正常使用。请问有没有什么解决办法?
以下是AI回复。实际我采用方法一解决了问题,实测有效。
问题原因
kitty
默认设置的 TERM
是 xterm-kitty
,但很多远程主机(尤其是没有安装 kitty terminfo 的老系统)并不认识这个终端类型。导致远程主机使用错误的终端控制逻辑来处理输入、退格、光标等行为。
解决办法
✅ 方法一:在 ssh 时更改 TERM
环境变量(推荐)
你可以在连接时将 TERM
设置为一个更通用的终端类型,比如 xterm-256color
:
TERM=xterm-256color ssh user@remote-host
或者使用一个别名简化它:
alias ssh='TERM=xterm-256color ssh'
将这行加到你的 ~/.bashrc
或 ~/.zshrc
中即可长期生效。
✅ 方法二:在远程主机安装 kitty 的 terminfo 文件
如果你有权限,可以在远程主机安装 kitty
的 terminfo 数据,这样远程主机会识别 xterm-kitty
:
-
本地导出 kitty terminfo:
kitty +kitten icat # 这会提示你安装 terminfo 命令 kitty +kitten install-shell-integration kitty +kitten ssh
或者手动安装:
curl -L https://sw.kovidgoyal.net/kitty/kitty.terminfo | ssh user@remote-host 'tic -x -'
-
然后你可以继续使用
xterm-kitty
,远程主机也能正常识别。
✅ 方法三:在远程主机中设置兼容的 .inputrc
或 .bashrc
你可以尝试添加如下设置(不太推荐,治标不治本):
export TERM=xterm-256color
stty erase ^H
结论(建议)
最简单稳定的方式是在连接 ssh 时使用兼容的 TERM 值,比如:
TERM=xterm-256color ssh user@remote
你平时也可以用 kitty
的 ssh kitten(kitty +kitten ssh user@remote
),它会自动处理 TERM 和字体兼容性问题。
需要我帮你写个自动脚本或 alias 来简化这个操作吗?