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.
I log in to the machine that will host my screens and start the
screen -S wrapper -c .screenrc_wrapper
wrapper screen's configuration just specifies the interrupt key.
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
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
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.
I start the
ssh screen from inside the
screen -S ssh -c .screenrc_ssh
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
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'