在OS X Bash终端使用SSH登录服务器的时候,有错误出现:
ssh user@server
Last login: Wed Mar 26 08:45:36 2014 from 1.2.3.4
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
这个警告或者错误的出现,是因为OpenSSH的客户端试图将本地的”LC_*”环境变量上传到服务器,并在服务器端设置这些变量。
有以下三种方法修复这个问题,任选其中一种。
一、使用OS X的Terminal.app
如果你使用的是OS X上得Terminal.app的话,那么:
1.打开Terminal.app。
2.将鼠标移动到屏幕左上角,苹果Logo旁边,依次点击
Terminal > Preferences
在”General”选项卡下,找到第一项:”On startup, open:”,从下拉框中选择一个样式,假如选定的是Basic。
3.切换到”Profiles”选项卡,从左侧列表中选择刚刚选中的样式,在右侧选择”Advanced”标签,取消倒数第二栏的”set locale environment variables on startup”勾选状态(即不勾选这个选项)。然后退出,关闭并退出Terminal.app,重新打开Terminal.app就可以了。
二、修改客户端的SSH配置文件
1.打开客户端SSH配置文件:
(Linux系统) sudo vi /etc/ssh/ssh_config
或(OS X) sudo vi /etc/ssh_config
2.找到这一行,并在这一行前用”#”号注释它。
#SendEnv LANG LC_*
3.保存并退出编辑器。再次用SSH连接服务器的时候就不会出现问题了。
三、在服务器端安装需要的locale文件
除了上述两种方法外,还可以在服务器上安装缺少的locale文件。使用命令:
sudo localedef -i en_US -f UTF-8 en_US.UTF-8
即可。
三种方式任选其一。
参考文献
1.解决LC_*问题