赞
踩
解决ssh连接Mac OS中文乱码的问题
1,ssh工具连接设置里为UTF-8编码
2,在/etc/profile最后加入
export LANG=zh_CN.UTF-8
3,连接的时候字符编码改成utf-8即可。
修改/etc/profile 提示文件只读。
解决方法:sudo chmod +w /etc/profile 即可
4,执行 source /etc/profile
在Windows平台里,习惯了用MyEntunnel翻墙。
到了Mac下,因为系统自带ssh客户端,所以完全可以通过命令替代MyEntunnel:
ssh -N -p 22 -C -c 3des -D 8580 proxy@yourvps.info
这个proxy是在VPS上建立的一个nologin账号,不过每次输入密码会很烦,所以打算做成key认证。
没想到的是,这么一个小小的事情,居然也让我折腾了好几个小时。
事件回放如下:
在client端,输入ssh-keygen生成 公钥/私钥,基本上是一路回车。
zhiyeqianqians-Mac:.ssh zhiyeqianqian$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/zhiyeqianqian/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/zhiyeqianqian/.ssh/id_rsa.
Your public key has been saved in /Users/zhiyeqianqian/.ssh/id_rsa.pub.
The key fingerprint is:
。。。(省略)
The key's randomart image is:
。。。(省略)
zhiyeqianqians-Mac:.ssh zhiyeqianqian$ ls -al
total 32
drwx------ 6 zhiyeqianqian staff 204 4 19 22:43 .
drwxr-xr-x+ 29 zhiyeqianqian staff 986 4 19 22:42 ..
-rw------- 1 zhiyeqianqian staff 1675 4 19 22:43 id_rsa
-rw-r--r-- 1 zhiyeqianqian staff 420 4 19 22:43 id_rsa.pub
-rw-r--r-- 1 zhiyeqianqian staff 1526 4 19 22:25 known_hosts
zhiyeqianqians-Mac:.ssh zhiyeqianqian$ scp id_rsa.pub root@yourvps.info:~/.ssh/authorized_keys
root@yourvps.info's password:
id_rsa.pub 100% 420 0.4KB/s 00:00
这时候从客户端登陆,发现依然提示要密码,如果把服务端sshd_config配置文件里禁用密码验证,并且重启sshd服务,客户端会看到报错:
zhiyeqianqians-Mac:.ssh zhiyeqianqian$ ssh root@yourvps.info
Permission denied (publickey,gssapi-with-mic).
搜索报错关键字无果,遂输入 ssh -vvv root@yourvps.info
这里的vvv表示打印调试信息,观察为什么报错:
zhiyeqianqians-Mac:.ssh zhiyeqianqian$ ssh -vvv root@yourvps.info
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to yourvps.info [x.x.x.130] port 22.
debug1: Connection established.
debug3: Not a RSA1 key file /Users/zhiyeqianqian/.ssh/openssh-key.
标红的地方很奇怪,明明ssh-keygen生成的公钥/私钥是 id_rsa 和id_rsa.pub,为什么它会先去读 openssh-key ?
(其实一开始思路没有这么自然,甚至都没有观察到这个提示信息,走了不少弯路才有后文)
(……一番折腾后)
检查到/etc/ssh_config,发现配置文件的最后2行是:
IdentityFile ~/.ssh/openssh-key
#IdentityFile ~/.ssh/id_rsa
默认应该是最后这个 id_rsa ,但却被我注释掉了,改成了openssh-key。
原来是在几个月前,
为了登陆腾讯的云主机,按照教程修改过ssh_config,于是ssh找不到本地私钥证书,验证失败了。
取消这行注释,或者在ssh_config里,添加一个针对主机的设置
Host yourvps.info
IdentityFile ~/.ssh/id_rsa
表示当目标主机为yourvps.info的时候,使用id_rsa的证书文件。
效果如下:
zhiyeqianqians-Mac:.ssh zhiyeqianqian$ ssh root@yourvps.info
Last login: Thu Apr 19 18:29:31 2012 from x.x.11.106
[root@10_23 ~]# exit
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。