Использование pexpect и openconnect для установления VPN-соединенияPython

Программы на Python
Ответить
Anonymous
 Использование pexpect и openconnect для установления VPN-соединения

Сообщение Anonymous »

Я пытаюсь создать сценарий, который будет устанавливать VPN-соединение. Я смоделировал свой сценарий на основе этого вопроса, и он отлично работает для моих целей, но я обнаружил, что как только я закрываю сценарий, VPN-соединение прерывается.
При использовании опции «-b» в конце child.read() я получаю следующее:


Установлено DTLS-соединение (с использованием GnuTLS). Ciphersuite (DTLS0.9)-(RSA)-(AES-256-CBC)-(SHA1).\r\nОперация SSL отменена\r\nПользователь отключен от сеанса (SIGHUP); выход.\r\n'


Вот мой код:

Код: Выделить всё

import os, sys, subprocess, time, re, pexpect
import signal

def signal_handler(sig, frame):
print("sigHUUUUUP")
sys.exit

child = pexpect.spawn('sudo openconnect -b --script /etc/vpnc/vpnc-script remote.host')

child.expect('.*')
child.sendline('yes')

child.expect('.*')
child.sendline('ipsec')

child.expect('.*')
child.sendline('username')

child.expect('.*')
child.sendline('password')
signal.signal(signal.SIGHUP, signal_handler)
time.sleep(15)
Я предпочитаю оставаться на Python, но я открыт для других способов запуска openconnect и передачи ему ожидаемых паролей. В основном ищу способ настроить VPN без необходимости непрерывного запуска сценария.

Я пробовал использовать ignore_sighup=True, но это не сработало.

Подробнее здесь: https://stackoverflow.com/questions/516 ... connection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»