Ssh

防止 SSH 客戶端將 TERM 環境變數傳遞給伺服器?

  • February 3, 2021

我目前正在使用Fedora 18 gnome-terminal,然後在其中啟動了tmux多路復用器。通過命令連接到CentOS 5 伺服器後ssh,我發現:

  • ls結果沒有顏色
  • tmux, screen, hexedit,htop全部啟動失敗,錯誤資訊如下:

打開終端失敗:缺少或不合適的終端:screen-256color

似乎將 $TERM 環境變數傳遞給伺服器,但我在Fedora 18ssh的文件中找不到它。/etc/ssh/ssh_config

雖然我可以手動更改伺服器上的 $TERM 變數,但每次連接時,它都會再次發生。那麼如何預防呢?

$TERM是告訴應用程序他們正在與哪個終端交談,以便他們知道如何與它交談。

將其更改為遠端主機支持的值,並儘可能與您的終端 ( screen) 匹配。

大多數 Linux 系統至少應該有一個screenterminfo 條目。如果不是,screen實現一個超集vt100並且vt100是通用的。所以:

TERM=screen ssh host

或者

TERM=vt100 ssh host

如果您確實需要 256 色支持,您可以嘗試xterm-256color哪個應該足夠接近(screen支持 256 色的方式相同xterm)並告訴應用程序您的終端應用程序支持 256 色並告訴他們如何使用它們。

或者,您可以在遠端主機上安裝 terminfo 條目。

infocmp -x | ssh -t root@remote-host '
 cat > "$TERM.info" && tic -x "$TERM.info"'

引用自:https://unix.stackexchange.com/questions/67537