Como armazenar a senha do OpenVPN ao usar um desafio estático

3

Eu uso autenticação com dois fatores para o OpenVPN, e estou usando a diretiva static-challenge .

Eu também quero armazenar meu nome de usuário e senha da VPN.

Eu tentei fazer isso usando auth-user-password up pela página man, mas quando faço isso, não me dá a oportunidade de oferecer um desafio estático, então isso falha.

Eu tentei escrever um script python que passasse um nome de usuário, senha e resposta de desafio via stdin para o processo openvpn, mas o openvpn parece não receber nada do que eu envio para o stdin (mesmo rodando o mesmo código contra um script de amostra que eu escrevi que recebe entrada usando sys.stdin.readline() funcionou). Um trecho está abaixo.

openvpn = subprocess.Popen(                                                      
        ['openvpn', '--config', os.path.expanduser('~/.ovpn-config')],           
        stdin=subprocess.PIPE)                                                   
openvpn.communicate('%s\n%s\n%s\n' % (username, password, otp))                  

Alguma ideia de como armazenar o nome de usuário e a senha e usar um desafio estático?

Obrigado!

    
por Sam King 01.04.2015 / 03:54

1 resposta

3

Eu acho que o problema é que o nome de usuário e senha não são enviados via stdin!

Você deve dar uma olhada no módulo python "pexpect".

    
por cornelinux 28.04.2015 / 20:38