Armazenando Várias Credenciais SFTP em um Servidor * nix

2

Eu tenho uma situação em que um cron job precisa fazer upload de arquivos para pelo menos dois servidores SFTP diferentes. Nós só temos logins, então usando chaves SSH como sugerido em outra resposta não funcionará. Então, dado o exemplo:

  • Servidor SFTP 1
    • someusername
    • somepassword
  • Servidor SFTP 2
    • someusername
    • somepassword

Existe uma maneira padrão e segura de armazenar senhas para 2 ou mais logins de SFTP, que podem ser acessados por um script de shell?

    
por Robert Dundon 16.01.2018 / 20:41

1 resposta

2

A maneira padrão é armazená-los em arquivos de texto simples e protegê-los com permissões do sistema de arquivos. Isso é tão bom quanto a segurança das contas que podem lê-los e sua capacidade de manter essas permissões no lugar ao longo do tempo.

Há uma tendência de as permissões bloqueadas ficarem mais soltas à medida que diferentes aplicativos gravam nos arquivos ou em seus diretórios ao longo do tempo. As ACLs de diretório podem ajudar, por exemplo:

setfacl -m d:g::-,d:o:- /secret/dir

para tentar impor permissões vazias para grupo e outros sempre que novos arquivos forem gravados no diretório - por exemplo, se um editor criar uma nova cópia do arquivo de senha, em vez de atualizar o arquivo original.

Se você quiser usar as chaves ssh, poderá armazenar os segredos em texto simples em outro host que permita somente o login por chaves ssh. Você teria que fazer o script em log naquele host, lendo o arquivo de senha e depois usando-o em um comando ssh. Isso seria difícil de fazer de forma confiável e segura, mas poderia funcionar.

A maioria das opções em que você pode pensar depende de permissões do sistema de arquivos para sua segurança. Capítulo 11 do SSH: O Secure Shell tem uma discussão sobre os trade-offs.

    
por 16.01.2018 / 20:55