Login automático via ssh (não há ambiente GUI instalado / não há agente ssh disponível)?

4

Eu tenho três sistemas e quero que eles façam backups entre eles periodicamente. Os dois têm o Debian Wheezy instalado e o outro tem o Ubuntu 12.04 instalado. Apenas o Ubuntu tem um ambiente GUI, enquanto os outros dois são apenas CLI.

Para os backups eu quero usar rsync via ssh , com os sistemas Debian sendo o destino dos backups. Eu tenho os comandos resolvidos e as chaves ssh apropriadamente geradas e copiadas entre os sistemas, mas como os sistemas Debian não possuem um ambiente gráfico instalado, o ssh-agent não é executado automaticamente. Portanto, sempre que eu tento ssh para os sistemas Debian, recebo uma solicitação para a frase secreta.

Existe uma maneira de pular o prompt? Pelo que entendi eu não posso usar o ssh-agent , quando eu só tenho o CLI. Eu estou procurando uma solução que funcione mesmo depois de um reinício sem que eu faça nada após a reinicialização.

Obrigado antecipadamente.

    
por alxs 01.12.2014 / 09:12

3 respostas

7

Eu criaria uma chave SSH específica sem senha específica para essa finalidade. No lado do servidor, você pode definir limites para o que essa chave pode ser usada e de onde ela pode se conectar, para que, mesmo que alguém consiga a chave, eles ainda não possam usá-la para fazer algo malicioso. / p>

A maneira de limitar a chave é editar o arquivo authorized_keys no lado do servidor e adicionar alguma configuração a ele. Aqui está um exemplo:

from="10.1.2.3",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/path/to/rsync" ssh-dss AA....[rest of key]
    
por 01.12.2014 / 13:29
4

Você pode usar chaves SSH que não têm senha.

Se você não gosta dessa idéia, então você pode criar um arquivo de chave sem passphrase e colocá-lo em um disco RAM. Assim, após uma reinicialização, você teria que fazer o login manualmente para preparar o sistema para o uso de SSH em lote, inserindo a senha e fornecendo o novo arquivo. Nas chamadas ssh você teria que fornecer este arquivo:

ssh -i /tmpfs/no_passphrase.key ...
    
por 01.12.2014 / 09:24
1

Dê uma olhada no pacote keychain . Não tenho certeza se ele fará o que você quer, mas armazena as chaves na memória de alguma forma. E isso não requer que o X funcione.

    
por 01.12.2014 / 10:37