洛阳铲的日志

2010年11月26日

别了SecuryCRT

Filed under: OS_Tips — 标签:, — 洛阳铲 @ 17:09

SecuryCRT用了近5年,惭愧的是没有购买版权,不得不说SecuryCRT是个很棒的软件,Tab支持,自定义光标,会话分组,多种身份验证机制(口令、密钥……)、端口/X11转发,Alt/Meta替换(Emacs用户福音),Xmodem/Zmodem支持(sz/rz即可上下传文件)。与其说是成天和服务器打交道,还比如说是成天和SecuryCRT打交道。如此的喜欢这个软件,但是这不能成为继续不合法的在使用它的理由,所以我也做出了痛苦的决定:试用开源的Putty,如果不适应,就购买正式版本的SecuryCRT,不是我钱多到无处花,而是因为,不能养成不劳而获的恶习。如果得到,就得必须付出!想要舒服的SecuryCRT就得为此买单,哪怕高达99美金也是必须的。
image

为了节省这99美金,一定要学会Putty。学习下来,可以肯定的说:Putty已经足够满足我对SecuryCRT80%的功能,剩下20%可以通过其他方法解决。使用Putty之前,首先对Putty的默认设置进行配置,然后在添加主机,这么做省去了添加一堆机器之后,修改某个设置后,又得回过头来一个机器几个机器的修改设置。下面是一些重要的设置:
首先关掉Bell,默认情况下终端里自动完成的tab键,man结尾的空格等等都会出发“嘟嘟”的声音,这些东西其实大可不必瞎嚷嚷,让它们都哑巴了吧:
image
禁用新开screen,screen其实也是一个命令,它可以让多个会话共享当前终端,互不干扰,哪怕关掉ssh连接也没关系,但是这儿这个screen和这个命令不是一个事情,此处的禁用新开screen是为了应对这种情况:emacs、vi、man等等命令,为了显示自己特殊的屏幕控制,而新建一个screen,这个screen和当前的终端一般是独立的,这种情况下,一旦退出emacs、vi、man,他们自己创建的那个screen便会消失、当前屏幕上面什么都不会留下,“雁过留声”是必须的,所以:
image

ssh有一项防发呆设置,在Putty中设置一下发送keepalives,设置每10秒发送空操作,这样不会莫名其妙的出现会话inactive错误。

image

关于密钥,ssh V1格式密钥的两种实现(OpenSSH和ssh.com)putty都可以完美支持,而由于ssh v2的密钥因为没有统一的格式,结果openssh、ssh.comhe和putty就各自为政,出来了三种格式,不过好在putty支持把ssh v2的openssh和ssh.com格式密钥导入或者导出成putty格式,这样可以利用putty的工具(puttygen.exe)来只有完成密钥在三种格式之间的自由转换。 为了安全期间,
当然别忘了给密钥设置密钥:
image

有了密钥之后,登录服务器就不需要输入密码了,只需要输入一次密钥,提供密钥就OK。这样你的密码甚至不会在网络上进行传输。
但是如果登录机器比较频繁,每登录一台服务器,都输入一次公钥密码似乎也是很麻烦的事情,现在该pageant.exe上场了,
image
它把密钥用密码解码之后加载到内存里面,putty每次登录机器的时候就可以直接向pageant.exe索取密码,而无需多次输入密码了,一次输入,多次使用。现在每天开机之后,只需要点击”Add Key”按钮,然后输入密码,就不用再和密码打交道了。完美!

image

如果觉得每次打开工作站或者自己的笔记本之后都重复执行”Add Key”也很繁琐的话,OK, 没问题,pageant.exe支持命令行调用增加sshkey,只需要在自动启动项加入一个cmd或者bat批处理: 
start D:\PROGRA~1\putty\PAGEANT.EXE  D:\ssh\ssh.ppk

这样每天开机之后,pagent.exe会自动运行起来,同时提示密码之后把ssh.ppk加载到内存。

如果你也和我一样,每天需要登录几百台服务器来进行管理,那么下面的小技巧可以节省不少时间:

因为ssh支持agent代理转发,这样只要在工作站或者笔记本(简记为W)上执行pageant.exe,登录服务器A的时候,会转发认证请求
到W的pageant.exe来验证公钥,从A再登录另外一台服务器B的时候也可以把ssh agent转发到W的pageant.exe。
类似的再从服务器B ssh到 服务器C一样可以转发ssh agent到W的pageant.exe。 为了做到这一点,只需要在putty中设置允许agent 转发,
同时在从A ssh到B的时候,增加A参数。

1. 允许agent转发

image

 

2. 使用-A 参数执行ssh,进一步转发agent,这样的好处就是只要W上面的pageant开着,不仅使用putty直接登录的服务器A可以使用pageant
来验证身份,而且登录A之后,再ssh到B也可以使用笔记本上的pageant来进行身份验证,如果到B的ssh也是-A的话,那么
在登录B之后,想再登录C,身份验证请求可以转发回B,而B则会转回A,A则会转回笔记本上的pageant。这样的话,
就会形成一个agent转发链,链的起点是当前登录的机器,终点就是运行putty的W。

SNAGHTML6c5045

 

Powered by WordPress