Você pode usar conexões persistentes. No seu arquivo ~/.ssh/config
, adicione linhas como esta.
Host server.name.or.wildcard.goes.here
ControlPath /tmp/ssh.%r@%h:%p
ControlMaster auto
ControlPersist yes
ServerAliveInterval 300
ServerAliveCountMax 15
Isto irá dizer ao ssh para manter a conexão aberta com um arquivo em /tmp
baseado na combinação usuário / host / porta. Depois de se conectar uma vez, o ssh reutilizará uma conexão existente. Ele acabará por expirar e desconectar automaticamente. Dessa forma, você recebe apenas uma solicitação de senha para vários comandos em execução rápida, até um determinado período de tempo. Se a conexão estiver ociosa por muito tempo, ela será fechada e você precisará digitar uma senha novamente.
Manter a conexão aberta também remove o atraso inicial da criação de uma conexão segura. Isso é ótimo para scripts em que você precisa fazer alguma ação, como copiar um arquivo, esperar, copiar outro arquivo, etc. cdist
usa essa técnica para acelerar o provisionamento da máquina.
Você também pode procurar fazer as chaves ssh para evitar completamente a senha.