Questão Existe uma maneira de manter a autenticação ssh aberta para vários comandos scp?


Eu preciso copiar vários arquivos pequenos de uma máquina remota para um local. Eu preciso fazer isso várias vezes ao dia. Atualmente, eu uso um script que usa scp para copiar os arquivos. No entanto, isso é lento como sempre, preciso autenticar. Existe uma maneira, além de montagem, de fazer uma autenticação e mantê-la viva até eu terminar a cópia?


2


origem


Por que não copiar os arquivos individuais em uma pasta, zipar e enviá-los de uma só vez? - Jay
Eles estão espalhados por várias pastas em um cluster de computação no qual não desejo executar o script. Eu acho que isso é uma opção considere embora. - Yotam


Respostas:


Basta usar o ControlMaster recurso do SSH. Para este propósito, coloquei uma opção global:

Host *
    ControlPath ~<user>/.ssh/ctrl-%r-%h-%p

No meu .ssh / config. Claro que você deve substituir <user> de acordo com o seu nome de login.

Sempre que eu quiser configurar uma conexão mestre inicial, eu adiciono '-M':

ssh -M <machine>

Isso cria um soquete de controle com um nome de arquivo especificado acima. Qualquer chamada subseqüente a ssh / scp visando esse <machine> reutilizará a conexão mestre existente. Acelerando drasticamente o processo de conexão porque nenhuma autenticação adicional é necessária para o tempo em que a conexão de controle (== mestre) existe. Como um efeito colateral agradável, você não precisa inserir novamente a frase secreta ao fornecê-la para estabelecer a conexão mestre.


1





Você pode usar ssh-add para adicionar chaves privadas ao seu agente de autenticação ssh. Vejo

man ssh-add

e

man ssh-agent

0