openvpn-2fa-autoconnect/launch_vpn.py
2026-07-07 23:43:16 +03:00

24 lines
831 B
Python

#!/usr/bin/env python3
"""launch_vpn.py — auth = static+TOTP, конкатенация без разделителя."""
import subprocess, pyotp, keyring, tempfile, os
USERNAME = "boyko_vn"
OVPN_CONFIG = r"C:\Users\User\app\vpn\ovpn-config-ano.ovpn"
OPENVPN_BIN = r"C:\Program Files\OpenVPN\bin\openvpn.exe"
def main():
secret = keyring.get_password("openvpn-totp", "secret")
static = keyring.get_password("openvpn-totp", "static")
code = pyotp.TOTP(secret).now()
fd, path = tempfile.mkstemp(suffix=".txt")
try:
with os.fdopen(fd, "w", newline="\n") as f:
f.write(f"{USERNAME}\n{static}{code}\n")
subprocess.run([OPENVPN_BIN, "--config", OVPN_CONFIG,
"--auth-user-pass", path])
finally:
os.remove(path)
if __name__ == "__main__":
main()