Mac OS ssh登陆Linux是终端提示cannot change locale (UTF-8)

在Mac OS上,ssh登陆到创建的centos 系统中,发现每次都提示

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

为什么会出现这个问题?

我们在mac上查看

$ echo $LC_CTYPE
UTF-8

在服务器上

$ echo $LC_CTYPE
en_US.UTF-8

mac上面是UTF-8,服务器上面识别不了UTF-8,一般都是”en_US.UTF-8” ,所以会报cannot change locale (UTF-8): No such file or directory 这个warning

以上命令会显示本地系统的国家和语言名字,以及locale使用的字符集。本地ssh客户端将发送LC_*环境变量给远程的sshd服务器。也就是说,SSH将尝试在远程服务器上设置和本地OSX系统一样的LC_*环境变量。这就导致了ssh登陆远程Linux服务器出现告警:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

解决方法一:
在本地mac电脑上修改/etc/ssh/ssh_config或者/etc/ssh/ssh_config文件,删除掉或者注释掉以下配置内容

#SendEnv LANG LC_*

解决方法二:

lk-gitlab.bj-office.eub-inc.com [~] 05/31/19 17:22:31
root@0 # cat /etc/environment
LANG=en_US.utf-8
LC_ALL=en_US.utf-8

如果上面都解决不了,而你使用的又是Iterm2的话,可以使用下面方法:

打开iterm2的preferences-> Profiles -> Terminal 关闭最下面的 Set locale variables automatically

你可能感兴趣的:(Linux系统,mac,locale)