HKEY_CURRENT_USER\Software\SimonTatham

并把这个目录下的子目录全部删除,删除前务必将PUTTY整个reg目录导出备份。

试过重启PUTTY后,注册表无法自动生成sshhostkeys目录,无奈只能重装putty。

 



二、putty使用之保持连接不要自动断开

利用putty工具登录服务器总是连接不上,这样的情况自己在刚接触putty时也遇到过。在 Connection 里面有个 Seconds between keepaliaves,这里就是每间隔指定的秒数,就给服务器发送一个空的数据包,来保持连接。以免登录的主机那边在长时间没接到数据后,会自动断开 SSH 的连接。如下图:

上图中,默认输入 0 是禁用保持连接,在这里我习惯的设置了 10。两个复选框都保持默认选中。

 

三、putty中解决SSH连接超时断开的两种方法


说说用SSH连接Linux时如果几分钟没有操作就会自动断开,要想连接上就要重新登录。有时候我们在操作中会耽误几分钟,超时断开对于我们来说是很麻烦的,尤其是在进行一些数据传输的时候,会更麻烦。我们怎样解决这样的问题呢?这里有两点解决办法。

一、配置客户端

     1在 linux下的ssh命令:vim /etc/ssh/ssh_config

  然后找到里面的ServerAliveInterval 参数,如果没有你同样自己加一个就好了。参数意义相同,都是秒数,比如9分钟:

  ServerAliveInterval 540

  2 SecureCRT

  设置反空闲,如下图所示
 

 

  3 Putty

  启用putty keepalive

  putty -> Connection -> Seconds between keepalives ( 0 to turn off ),默认为0,改为60。

二、更改ssh服务器的配置文件/etc/ssh/sshd_config

  ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。而ClientAliveInterval 60表示每分钟发送一次,然后客户端响应,这样就保持长连接了。这里比较怪的地方是:不是客户端主动发起保持连接的请求(如FTerm, CTerm等),而是需要服务器先主动。

  另外,至于ClientAliveCountMax,使用默认值3即可。ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值,就自动断开,正常情况下,客户端不会不响应。

  ClientAliveCountMax

  Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the ses-sion. It is important to note that the use of client alive messages is very different from TCPKeepAlive (below). The client alive messages are sent through the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by TCPKeepAlive is spoofable. The client alive mechanism is valuable when the client or server depend on knowing when a connection has become inactive.The default value is 3. If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds. This option applies to protocol version 2 only.

  ClientAliveInterval

  Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only.

  vim /etc/ssh/sshd_config

  找到ClientAliveInterval 参数,如果没有就自己加一行。

  ClientAliveInterval 参数的数值是秒,比如你设置为540,就是9分钟.

  ClientAliveInterval 540

  对于ClientAliveCountMax

  指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数,比如10。

  ClientAliveInterval 540

  ClientAliveCountMax 10;

  则代表允许超时 5400秒 = 90分钟。

其实,这两种解决办法的道理都是一样的,都是对数据的更改一下,只是进行的途径不一样。两种方法都很实用,供大家选择。