Geral: Melhor maneira de lidar com a senha de texto simples? Específico: Cygwin / email / bash

5

Estou configurando o Cygwin, e um dos pacotes que estou usando é 'email' para, o que mais, enviar e-mail de um script.

Eu "melhorei" uma das minhas preocupações sobre a configuração do email, copiando /etc/email/email.conf para um diretório em meu diretório pessoal, em vez de editar o arquivo de configuração padrão com minhas configurações (por exemplo, nome de usuário e senha). No entanto, ele ainda me dá um susto para digitar minha senha SMTP de texto puro em um arquivo de texto, mesmo que seja ~/my-email.conf .

O comando de e-mail tem o parâmetro -i (ou -smtp-pass), ao qual eu posso anexar a senha dentro do script de chamada, mas isso não é nada melhor porque ainda é um texto puro em um arquivo de texto.

Além disso, o comando de e-mail permite configurar smtp-auth='LOGIN' e solicitará a senha, mas eu preferiria (requer?) operação sem prompt do script, para que eu possa automatizá-lo mais tarde.

Qual é a melhor maneira de resolver esse problema de ter que armazenar uma senha de texto não criptografado em um arquivo de configuração (ou script)? Este é o Cygwin, então é melhor simplesmente endereçar isso do lado do Windows, e garantir que as permissões de Segurança nesse arquivo estejam restritas apenas a mim? (ou seja, remover o acesso de leitura padrão concedido ao grupo "Usuários", et al) Ou existe uma maneira mais comum / apropriada de lidar com isso?

    
por JMD 28.10.2009 / 21:00

2 respostas

1

Existem algumas maneiras diferentes de lidar com isso.

  1. Você pode alterar a senha armazenada ou usar parte do hash da senha armazenada como sua senha. Na verdade, isso não protegerá a senha, pois o script em si provavelmente terá o método para desvendar a senha incorporada, mas evitará que a senha de texto não criptografado esteja presente em um arquivo. Você pode usar sha1sum, md5sum ou até mesmo crypt.

  2. Você pode usar o script para chamar seu programa de e-mail com a senha enviada como um argumento. O script em si pode conter sua senha, embora você possa gerar um hash desse valor ou mesmo usar o sqlite3 para armazená-lo. Se você não está preocupado em ter que executar o script em segundo plano sem supervisão, então deve ser relativamente fácil ter uma consulta de script para uma senha e enviá-la para o comando de email.

  3. Você pode usar esperar para responder ao aviso feito se você usar smtp-auth = 'LOGIN'. Esperar é um pacote que você pode instalar no cygwin. Há uma pergunta em stackoverflow sobre como fazer com que pedir uma senha . Isso é mais uma solução se você precisar que o script possa enviar a senha enquanto não estiver atendido.

Para um simples snippet esperado para enviar uma senha para algo como ssh-add

set timeout -1
spawn ssh-add
match_max 1000000
expect "Enter passphrase for "
send -- "$password\r"
    
por 29.12.2009 / 00:08
0

Nos sistemas Debian, eu usaria o ecryptfs para criar uma pasta criptografada no meu homedir (de fato é o que eu faço) e, em seguida, um link simbólico para esse arquivo.

Você provavelmente não conseguirá encontrar o software para fazer isso, mas o truecrypt permitirá que você tenha uma partição criptografada que você pode tornar bastante pequena e armazenar tais arquivos. Agora, você deve ser capaz de fazer isso bem.

    
por 04.01.2010 / 11:45