O que você está descrevendo é conhecido como multiplexação SSH.
Eu uso essa configuração em uma configuração devops para armazenar em cache minhas conexões com qualquer VM.
Dessa forma, reutilizo a mesma conexão por até 30 minutos / cache a conexão sem renegociar toda a conexão SSH (e autenticar o usuário) em cada novo comando.
Isso me dá um enorme impulso na velocidade ao enviar (vários) comandos em sequência para uma VM / servidor.
A configuração é feita no lado do cliente e, para um cache de 30 minutos, a configuração pode ser feita em /etc/ssh/ssh_config
como:
ControlPath ~/.ssh/cm-%r@%h:%p
ControlMaster auto
ControlPersist 30m
O parâmetro MaxSessions
, também em ssh_config
, também define quantas conexões simultâneas são permitidas; o valor padrão é 10. Se você precisar de mais conexões em cache simultâneas, convém alterá-lo.
Por exemplo, para um máximo de 20 conexões em cache:
MaxSessions 20
Para mais informações, consulte OpenSSH / Cookbook / Multiplexing
An advantage of SSH multiplexing is that the overhead of creating new TCP connections is eliminated.
...
The second and later connections will reuse the established TCP connection >over and over and not need to create a new TCP connection for each new SSH connection.
Veja também Usando a multiplexação de SSH
Por último, como a multiplexação mantém a conexão TCP aberta entre o cliente e o servidor, você terá a garantia de estar falando com a mesma máquina no balanceador de carga, desde que o cache esteja aberto / ativo.SSH multiplexing is the ability to carry multiple SSH sessions over a single TCP connection
Without multiplexing, every time that command is executed your SSH client must establish a new TCP connection and a new SSH session with the remote host. With multiplexing, you can configure SSH to establish a single TCP connection that is kept alive for a specific period of time, and SSH sessions are established over that connection. This can result in speed increases that can add up when repeatedly running commands against remote SSH hosts.