A utilização de 'esperar' de uma forma segura para automatizar logins remotos/trabalho
-
25-09-2019 - |
Pergunta
Tenho um servidor com o qual eu não posso usar chaves pré-compartilhadas e ssh
- todos autenticação através de prompts interativos.
Esse servidor também tem cron
e at
desativado para utilizadores não-root.
Eu gostaria de ser capaz de cron
um trabalho na minha máquina local que irá executar um script no servidor remoto para fazer a manutenção periódica e de geração de relatórios.
Eu dallied com expect
alguns, mas ter notado que, para automatizar colocar a palavra-passe para a linha de comandos na hora certa, ele precisa ser armazenada em texto não criptografado.
Existe uma maneira de proteger a senha de tal forma que eu introduza uma vez e, em seguida, é mexidos/whatever localmente (como passwd
faz) e, em seguida, eu não sou de guardar a senha em texto não criptografado no próprio script?
Solução
É muito inseguro para ficar com a autenticação baseada em senha, devido à botnet ataques baseados ser capaz de embotar a utilidade do denyhosts.Mas se você tem, você deve...
O que eu vou fazer quando preso nessa situação é colocar a senha em um arquivo separado do script, de fazer que o arquivo de senhas só pode ser lido por mim, e fazer o diretório está em só de leitura (e executável) por mim.Eu também vou tomar um grande cuidado para assegurar que a senha nunca é passado como um argumento ou uma variável de ambiente;os dois são trivialmente snoopable com ps
.Passando o nome do arquivo de senha é OK (pode proteger o caminho) e passando a palavra-passe através de um sem nome de pipe também é seguro.
Outras dicas
O armazenamento de senhas é sempre inseguro (se você precisar de acesso à senha do ClearText). Seu script terá que ter a lógica "não codificante". Qualquer pessoa que tenha acesso a leitura no seu script poderá descobrir onde a senha codificada é armazenada e como desconhecê-la.
É um julgamento para você. Qual você valoriza mais: automação (para economizar seu tempo) ou segurança de senha?