I use GNU Screen to keep a few terminal windows open over a shared set of screen windows logged into a large number of other machines.
Wrapper screen
I log in to the machine that will host my screens and start the wrapper screen.
screen -S wrapper -c .screenrc_wrapper
The wrapper screen's configuration just specifies the interrupt key.
escape ^Ww
I create a screen window in wrapper for each terminal window I want to use, as many as four. Each terminal window will run one of the wrapper windows.
SSH agent
I use SSH agent forwarding to log in to my screen host, but if you don't then you might need to run ssh-agent inside the wrapper screen before starting the ssh screen.
exec ssh-agent bash
ssh-add
This is necessary for the next step where I ssh into a bunch of other machines. I have already installed my public key on the destination machines.
SSH screen
I start the ssh screen from inside the wrapper screen.
screen -S ssh -c .screenrc_ssh
The ssh screen's configuration creates a bunch of windows that ssh into other machines I want to work on. I like to have at least two windows for each machine.
screen -t "host 1" ssh host1
screen -t "host 1" ssh host1
screen -t "host 2" ssh host2
screen -t "host 2" ssh host2
screen -t "host 3" ssh host3
screen -t "host 3" ssh host3
select 0
Inside the other wrapper windows, I attach to the running ssh screen.
screen -x ssh
At the start of the day, I open up a few terminal windows, log in into the screen server, and attach to the running wrapper screen. This is simplified with an alias.
alias wrapper='screen -x wrapper'