最近开始使⽤putty,在⽹络上看到⼀份很不错的教程,共享⼀下:putty使⽤⽅法,中⽂教程序⾔
⼤致内容罗列如下:
最简单的使⽤,登录 SSH 主机中⽂乱码的处理
PuTTY 常⽤配置的说明
复制、粘贴保存会话注销
⾃动登录⽤户名⾃动设置环境变量设置代理服务器⾃动执⾏命令
备份、删除 PuTTY 的设置PuTTY 的 X11 转发
如何⽤ PuTTY 建⽴ SSH 隧道
如何⽤ PuTTY 建⽴反向的 SSH 隧道,像个特洛伊⽊马⼀样突破防⽕墙把 PuTTY 作为⼀个安全的代理服务器
安全的上⽹不被嗅探
避免 MSN 等聊天⼯具被监听
怎样⽤ PSCP、PSFTP 安全的传输⽂件
功能强⼤的 SFTP 客户端 WinSCP
⽤ PuTTYgen ⽣成密钥,登录 SSH 主机不再需要⼝令Pagent 代理密钥,每次开机只需要输⼊⼀次密钥⼝令Plink 简单⽽⼜迅速的执⾏ SSH 主机上的程序常见问题
除了上⾯的这些,还夹杂了⼀些 PuTTY 使⽤上的技巧、服务器配置的⼀些安全建议。说起来这是⼀些有关 PuTTY 的使⽤教程,其实也就是 SSH 的参考教程,绝⼤多数的内容在其他系统或软件上也都是⼀样的。不同的是参数、配置、命令⾏之类的,只要会了⼀个,其他也就触类旁通了。⼀些基本知识
如果你已经知道 SSH、Telnet、Rlogin 这是什么,就跳过这⼀部分,看下⾯的吧。(以后补充,暂时空下) 简介
PuTTY (Telnet 和 SSH 客户端)
PSCP (SCP 客户端, 命令⾏下通过 SSH 拷贝⽂件,类似于 Unix/Linux 下的 scp 命令)
PSFTP (SFTP 的命令⾏客户端,类似于 FTP 的⽂件传输,只不过使⽤的是 SSH 的 22 端⼝,⽽⾮ FTP 的 21 端⼝,类似于Unix/Linux 下的 sftp 命令)
PuTTYtel (仅仅是⼀个 Telnet 客户端)
Plink (命令⾏⼯具,执⾏远程服务器上的命令)
Pageant (PuTTY、PSCP、Plink 的 SSH 认证代理,⽤这个可以不⽤每次都输⼊⼝令了)PuTTYgen (⽤来⽣成 RSA 和 DSA 密钥的⼯具).
虽然包含了这么多,但平时经常见到只是⽤ PuTTY 登录服务器,完全没有发挥出 PuTTY 的强⼤功能。 PuTTY 作为⼀个组件也存在于很多的软件中,⽐如 FileZilla、WinSCP 在后⾯的⽂字中,如⾮特别说明,默认的登录的协议是 SSH。毕竟⽤ PuTTY 主要就是登录 SSH 主机,⽤ Telnet、RLogin 没法体现出 PuTTY 的强⼤功能。安装
第⼀印象,开始登录⼀台远程主机运⾏ PuTTY 就可以看到下⾯这个界⾯
在这⾥输⼊服务器的 IP
或主机名,选择好登录协议,还有协议的端⼝,如果希望把这次的输⼊保存起来,以后就不需要再重新输⼊了,就在第4步输⼊好会话保存的名称,⽐如:mail-server,或者⼲脆就是主机的地址,点击保存就可以了。
最后点下⾯的 Open 按钮,输⼊正确的⽤户名和⼝令,就可以登录服务器了。⾸次登录⼀台主机时第⼀次登录时,会看到这个对话框
这是要告诉你登录的主机密钥指纹,点 Yes 就保存起来,以后就不会再弹出这个窗⼝,然后就正常登录。点 No 不保存,下次还是要提⽰你,然后也可以正常登录。如果⼀台主机我们只是临时登录⼀下,当然就是点 No 了。Cancel 就是取消,也就是取消了这次登录。 如果你曾经登录过这台主机,但是⼜弹出来这个对话框,可能有以下⼏种情形:
主机重新安装了操作系统
这台主机可能有多个IP,这次⽤的是另外⼀个 IP
有其他不怀好意的主机来冒充,诱骗我们登录,窃取隐秘信息
前两个情形很常见,⼀般点 Yes 就⾏了。后⾯这个嘛……唔……唔……,点 No/Cancel,再去询问相关的主机管理⼈员。⼜看到了中⽂乱码
成功登录主机后,输⼊命令,这……这……显⽰,⼜是乱码。唉,中⽂乱码是⼀个⽼⽣常谈的问题,提起来就头⼤。原因嘛,不外乎字符集、终端编码之类的,还是可以解决的。
PuTTY 的默认字体和字符集并不适合中⽂显⽰, 在窗⼝标题上点击右键,选择 Change Settings...在打开的配置窗⼝左边选择 Appearance,在右边点 Font settings ⾥⾯的 Change按钮,选择好中⽂字体,⽐如:宋体、新宋体之类的
字体选择好了,还要确定字符集。
选择配置窗⼝左边的 Translation,在右边的 Received data assumed to be in
which character set 下拉列表中选择最后⼀个“Use font encoding”,最后点下⾯的 Apply 按钮就⽣效了。
重新执⾏命令 ls -l,就可以正常看到中⽂了怎么还是乱码?
如果还是乱码的话,就执⾏以下命令,看看系统的字符集 echo LANGLANGLANGUAGE
哦,原来系统的字符集是 UTF-8 呀。重新返回上⾯选择字符集的那⼀步, 选择配置窗⼝左边的 Translation,在右边的 Received dataassumed to be in which character set 下拉列表中选择“UTF-8”
这下99%的情形下,汉字是不会有乱码了。最后,总之⼀下 PuTTY 中乱码的解决办法:先看看系统的字符集,如果是 UTF-8
的,那就简单了,选择好中⽂字体,然后编码选择 UTF-8 就⾏了。如果编码是 GB2312、GBK、GB18030,当然也包括 BIG5这些,在PuTTY 的编码选择中看不到这些编码,那就选择最后⼀个“Use font
encoding”,绝⼤部分情况下这样就没啥问题了,反正我是没碰到有什么例外的情况。现在的 Linux 如果默认语⾔选择为中⽂,默认的编码就是
UTF-8 了。以前安装 Redhat AS 3 时,语⾔选择为中⽂,默认的编码是 zh_CN.gb2312, zh_CN.gb18030,好像从 AS 3
update 6 开始,包括现在的 AS4、AS5,中⽂的默认编码都成了 zh_CN.utf8。⾄于 Debian、Ubuntu 等等这些上⾯,好像⼀直都是UTF-8。
⾄于是使⽤ UTF-8呢,还是⽤ GB2312、GBK 或者 GB18030呢?我个⼈还是倾向于
UTF-8。毕竟我们使⽤的⼤多数软件都是国外的,处理中⽂编码多多少少有些问题,PuTTY ⾃然也不例外。下⾯的这个图上,我把终端编码修改为
zh_CN.utf8,然后也按照前⾯的所说的⽅法把 PuTTY 的字符集修改为 UTF-8。然后在终端中输⼊汉字“柴锋”,按左⽅向键,可以看到汉字显⽰很正常。
我重新把终端的编码修改为 zh_CN.gb2312,同样的,把 PuTTY 的字符集修改为最后⼀个“Use fontencoding”。还是在终端上输⼊汉字“柴锋”,按下左⽅向键以后,会看到汉字乱码了。
⾄于⽤哪个编码,主要还是看领导的决定了,我们的领导就喜欢 GBK,连 GB18030 都不⾏。以前在⽤ Debian 的时候,好像默认都不⽀持GBK
编码。这⼏年公司的开发在汉字编码问题上出过⼏次⿇烦,还不就是在 ISO8859-1,GB2312/GBK/GB18030和UTF-8上折腾来折腾去。
给⼤家看⼀张 emacs 的截图,看看上⾯的这么多语⾔的⽂字共同显⽰,这个会是⽤GB2312/GBK/GB18030 的编码么?
⽤ UTF-8 也不是为了要在⼀个屏幕上显⽰好⼏种不认识的⽂字,也不⼀定⾮要是跟国际接轨弄个外包给⽼外开发程序做个其他语⾔的界⾯让⽼外⽤,起码不要在那么多编码⾥折腾了,顶多两个 ISO8859-1 和 UTF-8。发发牢骚,下⾯继续……在 PuTTY ⾥⾯怎样选中,复制和粘贴?
在 PuTTY 的窗⼝⾥⾯复制、粘贴可不能⽤ Windows ⾥的这些 Ctrl C, Ctrl Ins, Ctrl V 这些快捷键,Ctrl C 在控制台上可是终⽌当前的命令执⾏。 PuTTY 的选择、复制、粘贴这些操作都是通过⿏标来完成的。 在 Window-〉Selection 这⾥可以设置复制和粘贴的⽅式。
默认的 Action of mouse buttons (⿏标按键的功能)的选项是
Compromise,这种⽅式下选中有两种⽅式,⼀是直接⽤⿏标左键拖拉选中就可以了,⼆是⽤⿏标中键单击选中区域的开头,⽤滚动条拖拉到期望选中区域的末尾,再⽤⿏标中键单击,就可以选中了。
选中以后,单击⿏标左键就把选中部分复制到剪贴板了。粘贴也很简单,单击⿏标右键。Action
of mouse buttons 的第⼀个选项是 Windows (Windows
⽅式的),⿏标中键的操作跟前⾯提到的⼀样。右键不是粘贴了,⽽是打开了右键菜单。其实这个右键菜单在标题栏上点击,也都可以看得到。
第三个选项是 xterm (xterm ⽅式),这个跟默认的 Compromise ⽅式相反的,中键和右键的操作调换了⼀下,就不多说了。下⾯那个
Shift overrides application's use of mouse 是和 Shift 键有关的。有些 Rogue Like 的程序,⽐如
mc、links、Lynx、VIM 等等,都⽀持⿏标操作,想在⽤⿏标在上⾯选择或粘贴就不⾏了。这个选项默认是选中的,在⽀持⿏标操作的Rogue Like
界⾯下,按住 Shift 键,就可以像前⾯的那样⽤⿏标来选择、复制、粘贴了。看下⾯的这个图⽚,⽤ Links 打开了 Google 的⾸页,⽤⿏标去选中顶部中间的 Google,我们会发现,弹出了保存的对话框。
在 Control use of mouse ⾥⾯还有个 Default selection mode (默认的选择模式),默认是Normal,就像⽂字处理⼯具⾥这样的选择按住 Shift 键重新操作⼀次,哈哈,这次选中了。
在 Control use of mouse ⾥⾯还有个 Default selection mode (默认的选择模式),默认是Normal,就像⽂字处理⼯具⾥这样的选择
另外⼀个是 Rectangular block(块选择⽅式),⾄于⽤哪种⽅式就看⾃⼰的选择了。实时保存会话
这次更改配置参数了,关闭窗⼝后,下次使⽤还是要重新选择的,⿇烦。 还是回到上⾯修改配置的哪个地⽅,选择左边的 Session,在右边选择要覆盖的会话名称,或者重新输⼊⼀个新的名称,点击 Save 按钮保存。
成功登录主机后,也能正常看到中⽂了。这样,我们就可以完成⼤部分的⼯作。最后要关闭窗⼝了,该怎么办呢?我见过很多⼈,包括我们公司负责专职维护的同事,都是直接点击窗⼝上的关闭按钮,完全没有理会弹出警告窗⼝,直接点击了Yes。
这样做是不对的,⾸先这不是正确的注销⽅式,应该输⼊命令 exit 来正常注销;其次直接关闭窗⼝后,你的登录其实还在服务器上,如果⼀连多次的这样强制关闭窗⼝,⽤命令 w 或者 who 命令查看时,可以看到很多的⽤户还在系统上登录,占⽤了系统的资源。最重要的是,你的这次登录可能只是为了启动⼀下 WebLogic 或者其他什么应⽤服务器,直接关闭窗⼝后,可能会导致你的业务在随后的⼏分钟内也被终⽌,这应该不是你所希望看到的吧。 如果上述的理由是每次要输⼊ exit 然后回车,⽐较⿇烦。你可以⽤快捷键 Ctrl d 来注销登录,⼀般情况下,快捷键⼀按窗⼝都直接关闭了,还省了两次⿏标点击。 在前⾯说道保存会话时,⼤家或许也注意到,下⾯有个 Close window on exit 有三个选项:
Always (不管怎样,窗⼝总是要关闭的)
Never (⽆论是否有程序还在运⾏,都不要关闭窗⼝)
Only on clear exit (这个是默认选中的,只有在本次登录中运⾏的程序都正常终⽌或者在后台运⾏,窗⼝才关闭)
有的程序在执⾏时,虽然在命令最后⾯加上 “&”就能放到后台运⾏。但是正常注销登录后,窗⼝没有被⾃动关闭,还能看到程序的输出,这时强制关闭窗⼝还是可以的。为了避免这种情形,可以使⽤ nohup 命令。 ⽤法嘛就是: nohup 命令 命令参数,这样就可以了。
窗⼝保存的输出有点少,前⾯的都看不到了
执⾏了⼀个命令,输出了好多东西,但是默认的配置下,PuTTY只保存了最后200⾏的内容,满⾜不了我们的需求
因篇幅问题不能全部显示,请点此查看更多更全内容