SSH-agent & SSH-add na reinicialização

3

Situação: executando o Ubuntu 10.04. Eu tenho um script bash que tar é um monte de pastas e copia-los para outro host por ssh. Eu copiei a chave pública para o outro host para que não solicite uma senha. Eu corro eval ssh-agent (com aspas extras) e ssh-add para o cache para passphrase e depois disso eu posso rodar o script sem ele solicitar a qualquer momento. Até aí tudo bem.

Problema: Eu quero executar este script através de um cronjob, sob meu próprio usuário por enquanto (isto é apenas uma configuração de teste). Mas quando eu reiniciar a máquina, ssh-agent perde as chaves que eu adicionei via ssh-add e eu tenho que fazer eval ssh-agent & ssh-add novamente para que funcione.

Pergunta: Como posso fazer o agente ssh executar em todos os momentos? (já que não haverá um usuário logado quando o cronjob for executado) Salvar permanentemente meu rsa_id para ssh-add?

    
por Jan Henckens 19.06.2011 / 18:26

1 resposta

4

Você precisaria deixar a frase secreta na chave ssh em branco ao criá-la. Dessa forma, você não precisará usar o ssh-agent. Claramente, há implicações de segurança dessa escolha - mas o ssh-agent sempre exigirá que você insira a frase secreta pela primeira vez se a chave estiver protegida.

Tecnicamente, você provavelmente poderia usar espera para passar uma frase-senha para ssh-agent a partir de um script - mas se você estiver preparado para colocar sua frase-senha em um script, você pode também apenas deixe em branco.

A maneira comum de melhorar a segurança se você seguir essa rota é permitir que a chave em questão acesse uma conta especificamente criada / restrita no outro servidor.

    
por 19.06.2011 / 21:17