Windows XP or prior Operating system only:
I wrote this answer 9 years ago for Windows XP, Putty software is 21 years old and so this answer is useful for historical purposes. Window's current smartphone-based Zune-OS for Desktop has broken Putty at the network level, in pursuit of irritating away all points of entry or exit that are not part of the pay-for-play Azure Vendor tool stack.
Putty has a feature which attempts to fix this problem:
Network Error: Software caused connection abort
- Start Putty
- Load your connection settings if you have them saved
- Click on “Connection”
- On the section that says "Sending of null packets to keep session active", Changed it to 5 seconds. 300 seconds may be better if network outages are your problem, read below for details.
How keepalives to prevent disconnection with Putty:
Some network routers and firewalls need to keep track of all connections through them. Usually, these firewalls will assume a connection is dead if no data is transferred in either direction after a certain time interval. This can cause PuTTY sessions to be unexpectedly closed by the firewall if no traffic is seen in the session for some time.
The keepalive option (‘Seconds between keepalives’) allows you to configure PuTTY to send data through the session at regular intervals, in a way that does not disrupt the actual terminal session. If you find your firewall is cutting idle connections off, you can try entering a non-zero value in this field. The value is measured in seconds; so, for example, if your firewall cuts connections off after ten minutes then you might want to enter 300 seconds (5 minutes) in the box.
Reduce the problem using putty autologin and "screen" tool
Putty cannot handle a crappy wifi that loses connectivity for minutes at a time. A work around is to use autologin and screen.
It is a non trivial problem for putty to re synchronize your terminal after a minute long loss in internet connection. You run risks of man in the middle attacks during an outage. You would have to re-authenticate yourself anyway to make sure. Putty doesn't impose that on you, it just drops you.
So use autologin so putty can auto login on your behalf.
- Generate a private key with the puttygen tool on the computer you are putty with.
- Paste the public key in your
/home/youruser/.ssh/authorized_keys
on the server side, on the server that you are using putty go login to.
- Make the private key accessible to putty in the putty settings Connection->SSH->Auth
- Add the private key by specifying the private key file under: "Private key file for authentication".
- Save the putty connection settings.
Then you would be able to double click your connection through putty, and it should take you right in to the terminal without typing username/password.
So now you can hook a login to putty on that connection with a keyboard combination like F6. So when the wifi goes bad and you get dropped. You mash down F6 and you're back logged in.
BUT you still lose the state of your terminal! How to fix that? Use the "screen" program. Make a new screen by typing 'screen'. A new screen is created.
When you get kicked out and auto login, you can reattach to your screen. Here is a tutorial on how to do that: http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/
It's a hassle to type in screen
and reconnect every time you get dropped. So you can write a script that will "auto bring you back to the last available screen" to make it transparent.
So then when the putty terminal freezes. It looks like this: You make a snort of contempt, mash down Alt+F4 to close putty, Mash down F6. And in 6 seconds you are back right where you left off.
Even better solution, in theory
In theory you could script out this entire above process, so the terminal detects when it has been dropped, and does all the above steps for you on restoration of the internet connection. If anyone knows a program that does this automatically let me know. It would be neat.
Sources:
http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter4.html#config-keepalive
http://rafaelwolf.com/?p=516
Best Answer
This means your server has some connection timeout (try a look at its
sshd_config
file or equivalent).You can try to play with the "keep alive" options in PuTTY or WinSCP. Here are my options for some similar case connection:
PuTTY:
WinSCP
Open the following dialog by going to your site, clicking Edit and Advanced and going to Connection page: