ssh 连接出现 LC_ALL: cannot change locale错误解决

ssh 连接出现 LC_ALL: cannot change locale错误解决

详细错误日志大概是这样的:

sh: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)

这个问题是系统语言不一致导致的。一台电脑的默认语言是中文的,当使用这台中文的电脑ssh连接远程一台机器,而远程机器语言是英文的时候,便会出现这个警告信息

有两种解决方法,两种解决方法二选一即可

假设 ssh 连接是 电脑1 连接 电脑2

解决方法一

解决方法一是修改 电脑1 的ssh一个配置文件

编辑文件:/etc/ssh/ssh_config

Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

在里面有一个选项:SendEnv ,注释掉它,注释后是这样的:

这个选项一般在倒数第三行

Host *
    # SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

解决方法二

方法二是修改 电脑2 的一个配置文件

编辑文件:/etc/environment

这个文件一般是空文件,在里面添加两行:

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

两个解决方案分别是编辑不同电脑上的配置文件,可以根据需要自行决定使用哪种方法

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://zwc365.com/2020/10/14/ssh-setlocale-error

Buy me a cup of coffee ☕.