PuTTY配置详解

目录

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,保证中文能够正常显示
PuTTY配置详解
3、GUI(X程序)支持?
平时我用putty远程到LINUX上,会在上面写些QT测试程序,可是GUI程序在LINUX主机上,需要通过一定手段将界面传送到本地,这就需要在Windows上装上X SERVER以实现远程 使用GUI程序。
 
这里我描述下基本原理,和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,按照下图配置,即可。
 PuTTY配置详解
 
 4、使用密钥对实现安全快捷的无密码登陆?
 每次登陆Linux都要输密码是不是有点烦?看到SecureCRT可以保存密码是不是有点心动?不用急,PuTTY也有,而且更安全,那就是使用密钥认证方式登陆。
使用Putty工具集中的puttygen.exe生成密钥对,如下图所示:
PuTTY配置详解
 图中显示的一长串的字符串是公钥,下面可以写入注释(一般用自己的邮件名),以及给私钥设密码,该密码用于保护私钥,防止私钥丢失被人盗用,在登陆时如果有设密码会要求输入,注意这个密码与之前登陆用的密码并不一样,私钥的密码不会传输到网络上。由于我们要实现无密码登陆,所以这里不要给私钥加密。
生成完后,记得保存私钥,后面需要用到,公钥可以不保存,用该软件打开私钥就可以查看公钥。
 
登陆LINUX,将公钥写入到SSH的认证文件中:
PuTTY配置详解
$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
PuTTY配置详解
 以及设置私钥文件(Connection->SSH->Auth):
PuTTY配置详解
保存Session, 以后登陆就不用再输密码了。
 
5、操作习惯(Alt+Enter全屏以及字体配置)?

a)由于长时间在LINUX上编辑代码时,自然要将PuTTY配置得舒适些。

编辑代码时,我都会将PuTTY切成全屏,默认PuTTY不支持Alt+Enter进行全屏切换,按如下界面修改即可支持。
Window->Behaviour
PuTTY配置详解

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转发

 

相关推荐