Ssh
防止 SSH 客戶端將 TERM 環境變數傳遞給伺服器?
我目前正在使用Fedora 18 gnome-terminal,然後在其中啟動了
tmux
多路復用器。通過命令連接到CentOS 5 伺服器後ssh
,我發現:
ls
結果沒有顏色tmux
,screen
,hexedit
,htop
全部啟動失敗,錯誤資訊如下:打開終端失敗:缺少或不合適的終端:screen-256color
似乎將 $TERM 環境變數傳遞給伺服器,但我在Fedora 18
ssh
的文件中找不到它。/etc/ssh/ssh_config
雖然我可以手動更改伺服器上的 $TERM 變數,但每次連接時,它都會再次發生。那麼如何預防呢?
$TERM
是告訴應用程序他們正在與哪個終端交談,以便他們知道如何與它交談。將其更改為遠端主機支持的值,並儘可能與您的終端 (
screen
) 匹配。大多數 Linux 系統至少應該有一個
screen
terminfo 條目。如果不是,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"'