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".
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!
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".