Login automático do ssh com a frase secreta?

5

Fazer o logon em uma máquina através do ssh normalmente requer que uma senha seja digitada antes que o acesso seja concedido. Como alternativa, uma chave / certificado (sem uma frase secreta) pode ser instalada na máquina remota para que o logon não exija mais uma senha. Isso é particularmente útil para soluções automatizadas ou com script.

No entanto, considera-se desaconselhável e inseguro criar uma chave / certificado sem uma frase secreta. As soluções que envolvem ssh-add e ssh-agent são propostas como um meio de inserir uma frase secreta apenas uma vez por sessão, mas ainda usar uma chave / certificado com uma frase secreta.

Qual é a solução para conexões automatizadas entre máquinas? Como uma máquina pode atualizar automaticamente de um repositório remoto do Bazaar (via bzr+ssh ?) Regularmente, como em um cron job? Como uma máquina pode fazer o backup automático de dados de outra máquina (via rsync) como parte de uma tarefa cron? %código%? Isso não seria criptografado , o que é uma grande desvantagem. Eu não olhei para as opções do servidor / daemon do Bazaar.

    
por SabreWolfy 24.07.2012 / 13:02

1 resposta

5

Para logins automatizados, você precisa usar chaves ssh sem chave, já que teria que intervir manualmente na inicialização e fornecer uma senha e ter que reabastecê-la após uma reinicialização.

Para proteger essas chaves, existem várias soluções - consulte man sshd para mais detalhes:

  1. Restrinja o host remoto à chave com o parâmetro from= , por exemplo:

    from="*.example.com" ssh_key
    

    isso só permitirá máquinas de example.com

  2. Especifique qual comando será executado com o parâmetro command= , por exemplo:

    command="some command" ssh_key
    
  3. Use um usuário dedicado com um shell restrito ou apenas com as permissões necessárias, por exemplo, para backup, o usuário só pode executar o rsync com o sudo.

por 24.07.2012 / 15:04