温馨提示×

centos ssh乱码怎么处理

小樊
48
2026-10-08 15:33:43
栏目: 智能运维

在 CentOS 上通过 SSH 连接后出现乱码,通常是字符编码不一致导致的。可按下面步骤逐一排查和解决。


一、确认服务器字符集(CentOS 端)

1. 查看当前字符集

locale
echo $LANG

正常应为:

LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

2. 如果未设置 UTF-8

临时设置:

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

永久生效(CentOS 7/8):

localectl set-locale LANG=zh_CN.UTF-8

或编辑:

vi /etc/locale.conf

内容:

LANG="zh_CN.UTF-8"

3. 确认系统支持中文 UTF-8

locale -a | grep zh_CN

如果没有,安装语言包:

yum install -y glibc-langpack-zh

二、SSH 客户端编码设置(非常关键)

Xshell / SecureCRT / PuTTY

PuTTY

Window → Translation → Remote character set
选择:UTF-8

Xshell

文件 → 属性 → 终端 → 编码
选择:UTF-8

SecureCRT

Options → Session Options → Terminal → Appearance
Character encoding: UTF-8

三、SSH 配置问题

1. 关闭 SSH 自动覆盖语言

编辑服务器:

vi /etc/ssh/sshd_config

确保没有:

AcceptEnv LANG LC_*

(如果有,可注释掉)

重启 SSH:

systemctl restart sshd

四、终端类型问题

查看:

echo $TERM

应为:

xterm
xterm-256color

如果不是:

export TERM=xterm-256color

五、文件本身乱码(已损坏)

如果是已有文件乱码,说明之前用错误编码写入:

file 文件名
iconv -f GBK -t UTF-8 文件 > 新文件

六、快速自检清单 ✅

  • [ ] 服务器 LANG=zh_CN.UTF-8
  • [ ] SSH 客户端编码 = UTF-8
  • [ ] 未使用 GBK / GB2312
  • [ ] 客户端字体支持中文

如果你能告诉我:

  • 用的是 PuTTY / Xshell / 其他
  • 是 命令输出乱码 还是 文件内容乱码

我可以给你更精确的解决方案。

0 踩