解决SSH登陆提示locale错误的问题

使用SSH登陆服务器后,总会提示找不到locale。如下截图。

这个问题在我的两台MacBook Pro上都存在,分别登陆阿里云的ECS虚拟机和AWS的EC2虚拟机也都存在这个问题。如何解决?

出现这个提示是因为我的本地电脑设置的英文语言环境,同时是UTF-8的字符集。而线上的公有云里边的镜像默认没有设置匹配的字符集,所以就提示这个错误。这个错误不影响使用,但是很烦人。

一、削足适履

第一招,所谓削足适履,就是既然设置错误,那我就不设置不就完了嘛。好的,我们可以去MacOS的Terminal下的每次登陆远程服务器自动设置locale的功能给disable。

选项的位置如下截图。红色框内就是这个选项。

好的,再来试试,问题解决!

不过呢,MacOS本地下console下,如果有中文的目录和文件名,那就显示不出来了,直接乱码。因为这个参数,不但远程登录的server不设置了,本地的也不设置了,那么本地目录中文就显示不正常。这方法不行。换一个。

二、反击

第二招,杠正面,既然server说找不到locale,那我就设置一个。

现在要去远程Server上,登录上去,root身份编辑/etc/environment,往里边写两行,done。如下截图。

好了,踏实了,不提示了。

不过呢,每个新创建出来的虚拟机都要做这个配置,很累,阿里云和AWS的虚拟机镜像都有这个问题。就算是走脚本批量调整,依然麻烦。

三、终极办法

把MacOS本地的ssh client里边的传递locale关闭。方法如下,注释掉如下一行。

把这一行加 # 注释掉。完工。

测试后,报错消失。每次操作都清静了。

完。