Como usar corretamente o ssh ControlMaster [duplicado]

8

Eu tenho um script que executa vários comandos remotamente por meio do ssh. Estou executando cada comando separadamente porque quero fazer outras coisas entre as execuções.

No entanto, não quero recriar uma sessão ssh toda vez que eu emitir um novo comando. Eu li sobre -oControlMaster , mas parece que não consigo dar certo.

Quando eu corro:

ssh -oControlMaster=yes -oControlPath=/tmp/test.sock root@host

depois de digitar minha senha, acabei de receber uma sessão ssh. Se eu sair, o arquivo /tmp/test.sock não será encontrado.

O que estou perdendo?

    
por n0pe 22.11.2015 / 17:00

2 respostas

12

Você pode usar a opção ControlPersist para deixar o soquete após se desconectar do servidor.

por exemplo, no meu arquivo de configuração ssh eu tenho este trecho, que deixa a conexão aberta por 3 segundos.

Host *
   ControlMaster auto
   ControlPath ~/.ssh/master-socket/%r@%h:%p
   #ControlPath ~/.ssh/%r@%h:%p
   ControlPersist 3s
    
por 22.11.2015 / 17:44
0

Uma conexão mestre precisa estar aberta para que uma segunda conexão possa usar a conexão principal.

O arquivo de soquete está disponível apenas enquanto a conexão principal está aberta. Se você fechar a conexão principal, o arquivo de soquete será removido. Qualquer "conexão escrava" aberta também será fechada se a conexão principal estiver fechada.

    
por 22.11.2015 / 17:33

Tags