Automatize backups via SSH em um desktop Linux

2

Atualmente, tenho uma configuração que me permite conectar a todos os computadores da minha rede doméstica por meio de chaves SSH e RSA. Eu sou muito consciente da segurança, então todas as minhas chaves são protegidas por senha. Eu gostaria essencialmente de definir algo em que estou executando o Unison em um cron job para fazer backup em um servidor de arquivos em minha rede, o que chamaremos de timmy . Eu notei que a primeira vez que eu tento usar uma chave no meu laptop Ubuntu teeks , eu recebo uma caixa de diálogo que aparece solicitando que eu digite minha frase secreta. Ouvi dizer que, para servidores que precisam fazer backups automatizados como esse, é necessário usar ssh-agent para solicitar a senha de chave no início do login / servidor. Como posso configurar isso em teeks ?

Eu gostaria essencialmente de acontecer o seguinte:

  1. Quando inicializo e entro no sistema operacional, solicito visualmente a frase secreta, como é feito quando uso pela primeira vez uma chave.
  2. Se eu usar o SSH neste computador (como é voltado para a Internet) e ainda não forneci a senha SSH, solicite-a. (Às vezes, talvez eu precise reinicializar a máquina remotamente por SSH, por isso vou usar o SSH nele depois que ele for reinicializado e gostaria de poder autenticar a chave sem ter que usar o VNC e faça-o manualmente.)

Existe uma ferramenta que eu possa usar para realizar isso?

    
por Naftuli Kay 07.06.2011 / 22:39

2 respostas

1

Você pode iniciar o ssh-agent quando fizer login no shell, colocando o seguinte no seu .profile :

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn't work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi
    
por 07.06.2011 / 23:56
0

Para evitar inserir senhas ssh (e automatizar tarefas), é possível usar certificados ssh, a configuração básica é gerar um certificado para o usuário do qual você deseja efetuar login e, em seguida, copiar esse certificado para a (s) máquina (s) / usuário (s) s) você deseja se conectar. É necessário garantir que seu servidor ssh esteja configurado para aceitar o login de certificado. Você deve garantir que seu certificado não seja comprometido quando você copiá-lo de uma máquina para outra.

Você pode ver amostras no link e mais informações detalhadas no site openssh link

Atenciosamente

    
por 08.06.2011 / 10:01