首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深信服VPN自动登录脚本开发手记

深信服VPN自动登录脚本开发手记

原创
作者头像
高老师
发布2025-07-24 17:27:54
发布2025-07-24 17:27:54
16300
代码可运行
举报
运行总次数:0
代码可运行

深信服aTrust VPN自动登录脚本开发手记

背景介绍

深信服aTrust VPN作为企业级安全解决方案,默认不提供记住密码的功能,导致每次连接都需要手动输入账号密码。对于需要频繁使用VPN的开发人员来说,这一安全措施虽然必要但影响了工作效率。

为此,我开发了一个基于PyAutoGUI的自动登录脚本,通过模拟键盘鼠标操作实现一键登录,既保持了安全性(密码在代码中直接管理),又提高了使用便捷性。

技术解析

实现原理

  1. 进程启动:通过subprocess直接启动aTrustTray客户端
  2. GUI自动化:使用PyAutoGUI模拟键盘鼠标操作
  3. 剪贴板操作:通过pyperclip安全传递凭证
  4. 异常处理:完善的错误捕获和处理机制

关键技术点

  • 使用subprocess.Popen启动VPN客户端
  • pyautogui实现精准的窗口控制和输入操作
  • pyperclip安全传递凭证信息
  • 精心设计的操作延迟确保稳定性

安全考虑

  • 代码中直接管理凭证,避免明文存储
  • 操作间设置合理延迟防止检测
  • 最小化剪贴板使用时间

完整代码实现

代码语言:python
代码运行次数:0
运行
复制
import subprocess
import time
import pyautogui
import pyperclip

# 设置全局延迟提高可靠性
pyautogui.PAUSE = 1.0  # 每个PyAutoGUI操作后等待1秒

def auto_login_atrust():
    """
    自动打开aTrustTray.exe并完成登录
    1. 启动aTrustTray.exe程序
    2. 等待程序加载
    3. 输入用户名
    4. 输入密码
    5. 按回车登录
    """
    USERNAME = 'admin'
    PASSWORD = 'MQan$1a1sar1D7DLMT'
    WINDOW_TITLE = 'aTrust'
    
    try:
        # 1. 启动aTrustTray.exe
        subprocess.Popen(r'C:\Program Files (x86)\Sangfor\aTrust\aTrustTray\aTrustTray.exe')
        
        # 2. 等待程序加载(5秒)
        print("等待程序加载...")
        time.sleep(5)
        
        # 3. 查找窗口
        windows = pyautogui.getWindowsWithTitle(WINDOW_TITLE)
        if not windows:
            print(f"未找到窗口: {WINDOW_TITLE}")
            return
        atrust_window = windows[0]
        atrust_window.activate()
        time.sleep(1)
        
        # 4. 按Tab键聚焦到用户名输入框
        pyautogui.press('tab')
        time.sleep(0.5)
        print("已聚焦到用户名输入框")
        
        # 5. 清空用户名输入框并粘贴用户名
        pyautogui.hotkey('ctrl', 'a')  # 全选当前内容
        time.sleep(0.5)
        pyautogui.press('delete')  # 删除选中内容
        time.sleep(0.5)
        
        # 复制用户名到剪贴板并粘贴
        pyperclip.copy(USERNAME)
        time.sleep(0.5)
        pyautogui.hotkey('ctrl', 'v')
        print(f"已粘贴用户名: {USERNAME}")
        time.sleep(0.5)
        
        # 6. 按Tab切换到密码输入框
        pyautogui.press('tab')
        time.sleep(0.5)
        print("已聚焦到密码输入框")
        
        # 7. 清空密码输入框并粘贴密码
        pyautogui.hotkey('ctrl', 'a')  # 全选当前内容
        time.sleep(0.5)
        pyautogui.press('delete')  # 删除选中内容
        time.sleep(0.5)
        
        # 复制密码到剪贴板并粘贴
        pyperclip.copy(PASSWORD)
        time.sleep(0.5)
        pyautogui.hotkey('ctrl', 'v')
        print("已粘贴密码")
        time.sleep(1)
        
        # 8. 按回车登录
        pyautogui.press('enter')
        print("已按回车登录")
        print("自动登录完成")
    except Exception as e:
        print(f"自动登录失败: {e}")

if __name__ == "__main__":
    auto_login_atrust()

使用说明

  1. 安装必要依赖:pip install pyautogui pyperclip
  2. 修改代码中的以下配置:
  3. USERNAME: 您的VPN账号
  4. PASSWORD: 您的VPN密码
  5. WINDOW_TITLE: 您的aTrust窗口标题(默认为'aTrust')
  6. aTrustTray.exe路径: 如果安装路径不同请相应修改
  7. 运行脚本:python atrust_login.py

总结

这个自动登录脚本完美解决了aTrust VPN无法记住密码的问题,通过精确的GUI自动化操作实现了安全便捷的一键登录。代码简洁高效,特别适合需要频繁连接VPN的开发人员使用。

安全提示:请妥善保管包含凭证的脚本文件,建议设置适当的文件权限。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 深信服aTrust VPN自动登录脚本开发手记
    • 背景介绍
    • 技术解析
      • 实现原理
      • 关键技术点
      • 安全考虑
    • 完整代码实现
    • 使用说明
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档