CentOS 下 SSH 连接出现乱码,通常是字符集不一致导致的。下面按常见原因和解决办法说明:
locale
echo $LANG
正常应为(中文环境):
LANG=zh_CN.UTF-8
如果是:
LANG=C
或 ASCII,就容易乱码。
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
永久生效(CentOS 7):
localectl set-locale LANG=zh_CN.UTF-8
或编辑:
vi /etc/locale.conf
内容:
LANG="zh_CN.UTF-8"
chcp 65001
编辑服务器:
vi /etc/ssh/sshd_config
确保有:
AcceptEnv LANG LC_*
然后重启:
systemctl restart sshd
如果是 cat 文件乱码:
file 文件名
转换编码:
iconv -f GBK -t UTF-8 file.txt > new.txt
echo $TERM
正常应为:
xterm
xterm-256color
LANG=zh_CN.UTF-8sshd 允许 LANG如果你愿意,可以告诉我:
我可以给你更精确的解决方案。