Windows命令提示符SSH连接RedHat服务器使用vi出现黑屏问题求助
问题根因
该问题由Windows命令提示符(cmd)自带ssh客户端默认传递的TERM环境变量与RedHat 7.9服务器的终端渲染配置不兼容导致,vi依赖的ncurses库无法正常识别终端参数,因此出现界面无内容但可接收命令的异常。PuTTY自带兼容的终端模拟逻辑,会主动协商匹配的终端类型,因此使用正常。
解决方案
临时生效方案(单次登录可用)
- 登录服务器后直接执行命令设置终端类型:
export TERM=xterm
执行完成后再启动vi即可正常显示内容 - 或者在Windows cmd执行ssh登录时直接指定终端参数:
ssh -t 用户名@服务器IP "export TERM=xterm; exec bash"
永久生效方案
服务器端配置(推荐,一次修改所有同客户端登录都生效)
登录服务器后直接执行以下命令写入用户环境变量配置,无需操作黑屏的vi:
echo 'export TERM=xterm' >> ~/.bashrc source ~/.bashrc
后续所有ssh登录该服务器的当前用户,都会自动加载兼容的终端类型配置。
客户端本地配置
在Windows当前用户的.ssh目录(默认路径为C:\Users\你的用户名\.ssh)下新建名为config的无后缀文件,添加以下内容:
Host 你的服务器IP/自定义别名 User 登录用户名 SetEnv TERM=xterm
保存后后续直接执行ssh 服务器IP即可自动传递正确的终端参数,无需额外设置。
验证方法
配置完成后执行echo $TERM,输出为xterm即说明配置生效,此时启动vi即可正常显示界面。
内容的提问来源于stack exchange,提问作者Frog
相关产品推荐
相关产品推荐

