目录

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配置pem文件 putty导入配置_密钥对


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,按照下图配置,即可。


 

putty配置pem文件 putty导入配置_无密码_02


 


 4、使用密钥对实现安全快捷的无密码登陆?


 每次登陆Linux都要输密码是不是有点烦?看到SecureCRT可以保存密码是不是有点心动?不用急,PuTTY也有,而且更安全,那就是使用密钥认证方式登陆。


使用Putty工具集中的puttygen.exe生成密钥对,如下图所示:


putty配置pem文件 putty导入配置_putty配置pem文件_03


 图中显示的一长串的字符串是公钥,下面可以写入注释(一般用自己的邮件名),以及给私钥设密码,该密码用于保护私钥,防止私钥丢失被人盗用,在登陆时如果有设密码会要求输入,注意这个密码与之前登陆用的密码并不一样,私钥的密码不会传输到网络上。由于我们要实现无密码登陆,所以这里不要给私钥加密。


生成完后,记得保存私钥,后面需要用到,公钥可以不保存,用该软件打开私钥就可以查看公钥。


 


登陆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


putty配置pem文件 putty导入配置_putty配置pem文件_04


Connection->SSH->Auth):


putty配置pem文件 putty导入配置_putty配置pem文件_05


保存Session, 以后登陆就不用再输密码了。


 


5、操作习惯(Alt+Enter全屏以及字体配置)?


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


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


Window->Behaviour


putty配置pem文件 putty导入配置_putty配置pem文件_06


b)建议进入Window->Apperance根据自己习惯调整字体。     


平时我使用Monaco或Courier字体,12号,粗体。


6、附录


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