目录
1、作用?
2、中文问题解决 ?
3、GUI支持?
4、使用密钥对实现安全快捷的无密码登陆?
5、操作习惯(Alt+Enter全屏以及字体配置)
6、附录(sshd服务器配置)
1、作用?
PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件,一般我都用它远程访问LINUX主机,另一个著名的类似软件是SecureCRT。
两者相比,PuTTY有几个明显的优势:
- 免费;
- 缺省配置就很好用,SecureCRT不是为LINUX准备的,需要经过一番配置才能使用得顺手;
- SecureCRT对VIM的支持有问题,这也是我几乎不用它的原因,我的代码编辑都需要VIM;
2、中文问题?
默认情况下PUTTY使用系统的编码,而WINDOWS的编码是GBK。
大部分情况下,LINUX的编码是UTF-8,这时中文将显示为乱码。在Linux用如下命令查看编码
$locale
显示
LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_ALL=
Putty应配置成与Linux一样的编码方式才能正常显示中文,具体步骤:
Window->Translation,将Rmote character set设置为UTF-8,保证中文能够正常显示
3、GUI(X程序)支持?
平时我用putty远程到LINUX上,会在上面写些QT测试程序,可是GUI程序在LINUX主机上,需要通过一定手段将界面传送到本地,这就需要在Windows上装上X SERVER以实现远程 使用GUI程序。
我平时都使用Xming,一直觉得功能不错,关于LINUX上的GUI显示到本地的基本原理及Xming安装,请参考《Xming X Server 配置和使用》。
这里我描述下基本原理,和Putty和LINUX端的配置,主要也是参考上面这篇文章整理所得。
基本原理:
LINUX下的OpenSSh具有X转发功能,将LINUX主机的X程序通过SSH的管道转发给客户端,于是当putty(或SecureCRT)
连接到主机,接收到LINUX主机转发回来的程序的交互时,将其交给WINDOWS系统下的X SERVER来管理和显示,这样就可以远程使用LINUX的X程序。
Linux要配置SSH服务器允许X11转发。
编辑/etc/ssh/sshd_config, 找到X11Forwarding这一行,如果没有则手动添加:
X11Forwrding yes #允许X11转发
putty的配置
Connection->SSH->X11,按照下图配置,即可。
4、使用密钥对实现安全快捷的无密码登陆?
每次登陆Linux都要输密码是不是有点烦?看到SecureCRT可以保存密码是不是有点心动?不用急,PuTTY也有,而且更安全,那就是使用密钥认证方式登陆。
使用Putty工具集中的puttygen.exe生成密钥对,如下图所示:
图中显示的一长串的字符串是公钥,下面可以写入注释(一般用自己的邮件名),以及给私钥设密码,该密码用于保护私钥,防止私钥丢失被人盗用,在登陆时如果有设密码会要求输入,注意这个密码与之前登陆用的密码并不一样,私钥的密码不会传输到网络上。由于我们要实现无密码登陆,所以这里不要给私钥加密。
生成完后,记得保存私钥,后面需要用到,公钥可以不保存,用该软件打开私钥就可以查看公钥。
登陆LINUX,将公钥写入到SSH的认证文件中:
$cd ~ $mkdir .ssh $chmod 700 .ssh $cat > .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhDdHT0KV+2fM7+w7Q0d+H4tQSzdcqUJGiWhjJRbn254KE5yOh/X23/14m4nmgeq2Tbs6hx7c6YZVgLaoTpGMz/9Lmwz16wEiuRu1xzIZFTU+TqTLNrrYBziWz1SkREwD4V7iaKp3YTaEykpDc+nCZSb0gv8i1+mfj9Lxt0fNxTqF+otf8oWCCsN4a8rgZnEjYcCYqO7v/vOY2v14en8OjMWberfNFEuD5Ld8t/5up7LMtlKiYakjvM0GFjWmBu1+TvdW7BefU4wgUgBHwbjpnpJiOKZ/1NjjXOK1en0ZzKsN5awuNWycuiRJ89IFCesY0UfC3hCjnjyy3F+zJsUOKw== pheye_rsa-key-20140403 (将公钥内容拷贝过来,然后按Ctrl+D退出编辑) $chmod 600 .ssh/authorized_keys
打开PuTTY,加载对应的Session,设置登陆名称:
connection->Data->Auto-login username
以及设置私钥文件(Connection->SSH->Auth):
保存Session, 以后登陆就不用再输密码了。
5、操作习惯(Alt+Enter全屏以及字体配置)?
a)由于长时间在LINUX上编辑代码时,自然要将PuTTY配置得舒适些。
编辑代码时,我都会将PuTTY切成全屏,默认PuTTY不支持Alt+Enter进行全屏切换,按如下界面修改即可支持。
Window->Behaviour
b)建议进入Window->Apperance根据自己习惯调整字体。
平时我使用Monaco或Courier字体,12号,粗体。
6、附录
如果依据本文章配置无法达到目的,请先检查下LINUX上SSH服务器的配置文件/etc/ssh/sshd_config是否正确,以下是本篇文章相关的一些配置,仅供参考。
PermitEmptyPasswords no #不允许空密码登陆 PasswordAuthentication yes #允许密码方式登陆 PermitRootLogin no #不允许ROOT登陆 RSAAuthentication yes #允许RSA认证,必须yes PubkeyAuthentication yes #允许公钥认证,必须yes AuthorizedKeysFile %h/.ssh/authorized_keys #用于用户认证的公钥文件名称,%h表示用户家目录 #有关X11的配置 X11Forwarding yes #允许X11转发