putty 知多少最常用的windows下的ssh客户端,也许就是putty了。至少我不知道还有其他的。但是对于putty,似乎很多人只知道下载回来之后,双击,输入ip,然后登陆使用。其实putty有很多地方设定一下,就可以让你的生活变得轻松很多。这里介绍一下常用的log系统,如何免密码登陆机器,如果在windows上直接通过putty显示linux中的xwindow中的图形界面程序。以及如何使用加密通道给自己做代理,也包含了如何防止SSL中的man in the middle 攻击。还有基本的如何在cmd的指令模式中使用ssh,scp等等功能
建议直接下载widnows的安装包(包括所有工具)至于为何除了本身我们还需要其他的工具呢?这个看到后面就会揭晓
完整包的下载在这里: the.earth.li/~sgtatham/putty/latest/x86/
建议直接安装在c:\putty这个目录下。因为这样等下添加目录path的时候会比较省事。如果您安装在其他地方,后面请将文章中所有出现c:\putty\的地方替换成你自己的安装途径[内建是Program Files或者Program Files (x86)]这个文件夹。
完整的安装包会给我们提供以下几个程序
pageant: 钥匙管理程序
plink: putty的指令模式(cmd下用)
pscp: 等于是linux下的scp (安全的传送文件的协议)
psftp: sftp客户端
putty: 这个就是大家用的最多的主程序了
puttygen: ssh 的钥匙成产/转换程序。
putty
从主程序putty开始吧。putty是我用过的最好的windows上的ssh客户端了。secureCRT我们公司有买,所以我也用过,总觉得没有putty来的顺手。另外secureCRT价格不菲。(我严重不提倡做电脑的人用盗版)
主程序开启很容易,双击就好,废话,这个谁都知道。。。
这里讲解一putty的设定为主。
第一段是logging,也就是记录。你可以把你每次开启putty的东西全部都记录到log里面去。这样做有两个好处,第一是你自己可以看。第二是可以给别人看。
putty的内定设定是不记录log的。在Session logging这里,你可以选择
None: 不记录
Printable output: 适合打印的log记录
All Session output:所以putty的窗口的显示
SSH packets: ssh 封包级别的记录
SSH packets and raw data:  ssh的封包级记录以及所有的raw数据(原始数据
通常来说,如果准备记录,那么 All session output就可以了
下一个选择是log file name: 你的log的名称,这个看个人爱好。我认为内建的putty.log就可
以了。如果你想根据时间来记录,putty也可以提供好像linux中的log名称记录方式。
&Y=年
&M=月
&D=日
&T=时间
&H=连接的主机名称 (linux那个机器)
例如我设定log为: putty-&H-&Y-&M-&D.log 然后我在2010年4月3日早上6点连接到机器maclinux,那么我的log名称将会是: putty-maclinux-2010-04-03-18.log
ssh工具windows之后的选项是让putty设定如果已经有了这个log的文件名,那么putty应该如何处理。
Always overwrite it
Always append to the end of it
Ask the user every time
这里提供3种方式,第一个是覆盖之前的log,重新写,第二个是接着之前的log继续写下去。第三个是每次询问使用者应该如何处理。
Flush log file frequently: putty内建是开启这个选项的。这个选项开启putty会第一时间把log写入硬盘。如果你做的东西有很多的显示,这个可能会影响到putty的效率(要不停的写硬盘)如果不选择这个选项,那么putty将会间隔一段时间才写进log。
log中最后的设定是 Options specific to SSH packet logging
一同提供两个选项: Ommit know password field: 这里选择后,putty不会记录跟密码相关的东西,另外一个是Omit session data: 这个选项会将会不记录 session 数据。 包括终端中的session data跟 forward (TCP, X11, 验证) 关于forward的东西后面会讲到。
Terminal
Terminal 主设定,基本不需要改动
键盘设定 (keyboard)没特殊要求,也是不用动的就好。Bell 也是一样(除非你爱好听声音)
这里说一下Features里面的设定。Features里面有一个设定需要更改(我只知道需要这一个)
就是 Disable application keypad mode
如果这个不选择,那么你在vim这类程序中,小键盘(数字键)就没法正常使用。只要选择了Disable application keypad mode那么小键盘就可以正常的在vim中使用了。
window
windows中我通常会加大Lines of scrollback 的值。这样的putty会窗口的记录的时候,会保持很多行的记录。方便查之前的资料。我个人来说,设定在200000行记录,基本一个星期内的东西,只要我putty窗口不关闭,都能回来看到(我没开log的)
Appearance: 这里里面可能唯一需要改动的就是字体跟大小了。我是用 Courier New 10号字-12号之间(根据屏幕大小决定)
Translation: 这里注意一个Character set的设定。如果你想中文显示无误,最好设定你的显示字符。我是用UTF-8 (我linux跟windows都是UTF-8的)这样不管输入显示中文就都没有问题了。
下面是个测试:我首先用UTF-8的编码,然后去显示一个文件。这里看到中文没有问题,然后我更改putty设定用VSCII编码,去显示同一个文件,中文就是乱码了。
Colours: 这里设定终端的颜。如果选择的 Use system colours那么就是白底黑字的。把这个选项不要打钩,你就可以设定任何你喜欢的颜(我通常用颜区分不同类型的窗口)颜变设定很简单,RGB值,可以直接手动输入,也可以点击Modify那个按键从谱中选择
Default Foregound: 前景颜
Default Bold Foreground: Bold时的前景颜
Default Background: 背景颜
Default Bold Background: Bold时的背景颜
Cursor Text:光标文字颜
Cursor Colour: 光标颜
至于后面的,就是详细的,你可以把某个颜显示成另外的颜。假设我把 ANSI Red (187,0,0)给成其他颜(0,255,0)那么红就成了绿了。基本来说,最常用的就是Default Foreground颜了。很少看到某个BT的人去单独每个颜都换换的。
下面是随便的几个颜
connection
这里需要设定一下。有人问,为什么我putty连接着过一段时间没用就自己断了呢?因为linux系统可以判断你一段时间没有任何动作就把你T出去。就好像里太久不说话,主就会T你一样。
这里有个选项是: Seconds between keepalives (0 to turn off) 这里设定发送 keepalive的封包时间。0就代表关闭(这个就是一段时间不用会断线的原因)这里可以随便设定一个值。我自己是放5,就是说每5秒发送一个keepalive 封包告诉主机,我还活着。
SSH
ssh 下面有几个选项的,这个也应该是大家最关注的东西。
在ssh主选项上,没什么必须要动的。不过我自己是设定:只用 ssh v2 协议并且优先的演算用 AES,通常来说这里保持不动就可以。
Auth 这里有几个地方关注一下:
1.Attempt authentication using pageant : 这个就是说允许我们用 Pagenant 来做免密码的 ssh key 登陆 (后面会说)
2.Attempt “Keyboard-interactive” auth: 允许键盘做互动登陆
3.Allow agent forwarding: 这个很有用。就是说可以把你的ssh 的 key 直接 forward 到你连接的主机去。(就是linux 中 ssh -A 的作用)
4.Allow attempted changes of username in SSH-2: 大家都是知道,正常情况如果你ssh连接一个机器,可以有几次输入密码的机会,但是只有一次输入用户名的机会。在ssh-2中,你
设定有多次输入用户名的机会。防止。。。用户名输错了,只好关闭putty重新开一个窗口。
这里解释一下 (3) 的 Agent forwarding: 正常情况,如果你用ssh key登陆,是不问你密码的。直接就可以进入主机了。例如我有2台主机A跟B,两台主机我都放了我的ssh key,可以免密码登陆。从putty登陆到A,这个时候是不问我密码的,直接就登陆了,但是在A里面,如果我直接从linux中用ssh登陆B,则需要密码。开启了Agent forwarding之后的作用就是,你从putty登陆A不需要密码,从A登陆B也不需要密码。你的ssh key被传给了A
X11
这个也是我的最爱。开启Enable X11 forwarding
有些时候,需要偶尔跑个linux的窗口程序,或者有时候需要用到。那么在windows上如何显示linux中的window呢?用linux的都知道,linux的X是server-client的模式。也就是说,你用任何一个linux连接到其他linux中,都可以直接在本地显示远端的linux窗口界面。ssh本身也提供这样的功能,在linux中,你给ssh -X的选项,就可以直接做X11的forward了。
putty中也有这个功能,当然了,你的window要有个X才可以,好在有免费的可以用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。