Putty,PuttyCM,WinSCP组合拳
^^^^^^^^^^^^^^^^^^^^^^^^^^
 - 作者:臭豆腐[trydofor.com]
 - 日期:2009-11-17
 - 授权:署名-非商业-保持一致 1.0 协议
 - 声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。

0. 文档目录
^^^^^^^^^^^
[[<=$INDEX]]

1. 组合拳要求
^^^^^^^^^^^^^
    1) 不修改服务器设置,显示日文。
    2) 有标签和标签名,以避免窗口太多或选错服务器。
    3) 自动登录,避免每次输入密码。
    4) 免费,免安装,绿色,可移植。
    5) 同一屏内,便捷的操作多个服务器。
    6) 同时在多个服务器上执行同一个命令,或叫群发。
    7) 服务器密码每30天变更,客户端可批量修改密码。
    8) ssh和scp能够配合默契。

2. 核心拳术Putty
^^^^^^^^^^^^^^^^
官方网站 http://www.chiark.greenend.org.uk/~sgtatham/putty/
里面有段文字 "Links to related software and specifications elsewhere."
找到支持日文的修改版, http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html
完成要求(1) 的要求,在session的设置是,选择/Window/Translation树中找到
"Received data assumed to be in which character set"下拉框并选择编码。

Putty还有很多修改版和其他应用,参考网上手册。
经常用的有,作为tunnel完成VNC连接。

3. 锦上添花PuttyCM
^^^^^^^^^^^^^^^^^^
官方网站 http://puttycm.free.fr,可惜 GFWed,自行绕道或在文尾处下载。
完成要求(2)到(8)靠的全是它(PuttyCM 由C#编写,需要.NET Framework 2.0)。

3.1. 量产密码
^^^^^^^^^^^^^
 1) 选择Database方式来保持连接信息,而不是putty的注册表形式。
    在Connection Manager 窗口,右键选择"Create Database"
 2) 建立一个测试的连接。
    注意在"Connection"里选择 "Enable Login Macro mode",以自动登录.
 3) Export XML文件。
    菜单 Database/"Import and Export"/"Export ..."
    选择 "Export passwords"

经过以上3步,我们可以得到xml格式的配置文件了。

======================== xml:puttycm 配置文件格式 ========================
<?xml version="1.0" encoding="utf-16"?>
<!-- ******************************************************************-->
<!-- *                                                                *-->
<!-- * PuTTY Configuration Manager export file - All right reserved.  *-->
<!-- *                                                                *-->
<!-- ******************************************************************-->
<!-- The following lines can be modified at your own risks.  -->
<configuration version="0.7.1.136" savepassword="True">
  <root type="database" name="credit" expanded="True">
    <container type="folder" name="SSH" expanded="True">
      <connection type="PuTTY" name="10.4.5.241">
        <connection_info>
          <name>10.4.5.241</name>
          <protocol>SSH</protocol>
          <host>10.4.5.241</host>
          <port>22</port>
          <session>Default Settings</session>
          <commandline />
          <description />
        </connection_info>
        <login>
          <login>shirj</login>
          <password>123456</password>
          <prompt />
        </login>
        <timeout>
          <connectiontimeout>1000</connectiontimeout>
          <logintimeout>750</logintimeout>
          <passwordtimeout>750</passwordtimeout>
          <commandtimeout>750</commandtimeout>
        </timeout>
        <command>
          <command1 />
          <command2 />
          <command3 />
          <command4 />
          <command5 />
        </command>
        <options>
          <loginmacro>True</loginmacro>
          <postcommands>False</postcommands>
          <endlinechar>10</endlinechar>
        </options>
      </connection>
    </container>
    <container type="folder" name="Telnet" expanded="True" />
  </root>
</configuration>
=========================================================================

根据xml格式,可以批量生产连接了,注意的地方有:
 * xml编码是utf-16,双字节,对控制台下的某些工具的可能失效。
 * timeout 标签里的时间根据服务器响应时间调整一下,我这都改成了2000。
 * Telnet 这个container 可以删掉。

等批量生产完xml配置文件后,回到PuttyCM,默认Database里的SSH分支删除。
然后,进入菜单Database,最后"Import ..."一下。
可以看到 Database中多了 Import分支,里面就是xml中的链接信息。

利用 container type="folder",可以生成目录结构,如下图所示。
[[<=./data/db-import.png]]

统计了一下,我能用的连接一共有121个,常用的有30多个。
服务器每30天修改服务器密码,当然各服务器密码相同。
如果手动修改,怎么也得小半天,现在只需要 查找替换和导入就可以了。

3.2. 自由分屏
^^^^^^^^^^^^^
经常面对几个窗口操作,分屏是很惬意的事情,方便而且很酷。
按住标准,拽到别的窗口,出现下图的样子,松手即可。
至于怎么用,拽拽就知道了。
[[<=./data/win-split.png]]
稍有遗憾的是,分屏窗口不能快速最大化,只能靠手拽调整视野。

3.3. 命令群发
^^^^^^^^^^^^^
这个功能(MCS)很实用,好久也没整明白,直到有一天发现了分屏。

选择窗口
[[<=./data/mcs-mwin-1.png]]

发送date命令
[[<=./data/mcs-mwin-2.png]]

3.4. 其他功能
^^^^^^^^^^^^^
 * connect external 用来在PuttyCM外部打开Putty窗口,也支持宏登陆。
 * Dulpicate current tab 再自动登录一个,想象成session clone吧。
 * Export putty sessons 从注册表中把Putty的信息拿出来。
 * Post-login command 登陆后执行命令,比如设置语言环境。

4. 文件传输WinSCP
^^^^^^^^^^^^^^^^^
官方网站 http://winscp.net/

目前只能达到WinSCP到Putty的组合,而Putty到WinSCP不行。

使WinScp使用*.ini的配置,注册表不是好套路。
在Preferences找到“Preferences...”按钮,做两个重要修改。
 * Storage/Configuration storage/INI file(winscp.ini)
 * Integration/Applications 指定putty.exe和记住密码选项。

有了INI我们就可以量产Session了,但是不能量产密码(目前不能简单解决)。
ini中有关Session的信息如下
=========================== txt: session 设置 ===========================
[Sessions\(10.4.5.%2A)/root@10.4.5.242]
HostName=10.4.5.242
Password=A35C4A51532084E88A06FED1C14E5562982E3333286D6C72687269726E686E366C6D1E1E102834C38332E65BAB5DC4A73A7A
UserName=root
=========================================================================

(10.4.5.%2A) 显示为目录"(10.4.5.*)"
"*"进行了转义。注意 "\" 和 "/" 的区别。

Password 是加密的,因此不能简单的量产密码。

WinSCP可以Export ini配置文件,和导入putty在注册表中的Session。
高级功能和设置,还是查看手册吧。

5. 相关下载
^^^^^^^^^^^
 * PuttyCM v0.7.1 BETA (build 136) [[461K=> ./data/puttycm-0.7.1-b-136.zip]]
 * PuttyCS v1.8.1 对游离的Putty窗口群发命令 [[28K=> ./data/puttycs-1.8.1.zip]]