如何在 ssh 配置中设置 TERM 环境变量?

Igo*_*nko 7 ssh

我在以下位置使用此设置~/.ssh/config

Host server
  Hostname 192.168.x.x
  SetEnv TERM=xterm
Run Code Online (Sandbox Code Playgroud)

但是当登录到服务器并执行操作时echo $TERM,我明白了xterm-256color

如何从 ssh 客户端配置文件设置 TERM?

奇怪的是:当连接为 时TERM=xterm ssh serverecho $TERM服务器上给出xterm. 虽然这表明设置可以传输,但这并不能解决问题,因为我需要在配置文件中设置它。另外,放在TERM=xterm服务器.ssh/environment上设置它,但它也不能解决问题,因为我无法在服务器上编辑任何内容。

小智 6

自 OpenSSH 8.7 (2021-08-20) 起,SetEnv TERM 现已支持

允许 ssh_config SetEnv 覆盖 $TERM,否则由协议专门处理。对于缺少 terminfo 条目的目标,在 ~/.ssh/config 中可将 TERM 设置为通用内容(例如“xterm”而不是“xterm-256color”)。


Igo*_*nko 0

这里只有 TERM 必须决定 - 不应该以任何方式在 ssh 中配置它。处理此问题的一种方法是使用正确的终端(使用 TERM=xterm 的终端)。另一种方法是创建 ssh 包装器并检查其中所需主机的名称,并在匹配的情况下检查 TERM 是否与 xterm 兼容,如果是,则执行export TERM=xtermbefore exec ssh "$@"。还可以使用 hack 在服务器上进行设置TERM=xterm.ssh/environment假设仅使用 xterm 兼容的终端来连接到服务器)。

使用这个命令:

TERM=xterm ssh host
Run Code Online (Sandbox Code Playgroud)