- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 python 函数连接到 CISCO Anyconnect VPN。我已经看到这里给出的方法: Connect CISCO Anyconnect VPN via bash
但首先我有几个问题,第一个是 Python 新手,第二个是不愿意使用除 https://github.com/cernekee/stoken 之外的任何/很少的第三方模块/库。 .
在这里,stoken 为我提供 RSA SecureID token ,以便在我运行时进行身份验证:
$ stoken tokencode
我的密码由 4 位 PIN 组成,例如 WXYZ,它与用于密码输入的 RSA token 连接在一起。
我想出了以下单行 bash 命令来连接,到目前为止,该命令在我的 OSX 上有效:
'(echo "user.name";echo "WXYZ$(stoken tokencode)"; echo y )> vps.ad ; /opt/cisco/anyconnect/bin/vpn -s connect "vpn.domain" < vps.ad'
现在,在我的 python 脚本中,我尝试使用 os 和 subprocess 模块来执行相同的操作,但失败了。
我有几个 VPN 域和两个不同的引脚(例如 WXYZ),我试图将它们放在一起来复制上述 bash 命令。该函数现在如下所示:
def __auth_cisco_vpn__(username, pin, domain):
try:
token = str(os.popen('stoken tokencode', 'r'))
pre_prcs = '(echo "' + username + '";echo "' + pin + '$(stoken tokencode)"; ' + 'echo y )> vps.ad ; /opt/cisco/anyconnect/bin/vpn -s connect "' + domain + '" < vps.ad'
subprocess.Popen(pre_prcs, shell=True, executable="/bin/bash", stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate()
return True
except KeyboardInterrupt:
return False
当我尝试单独获取 token 时,出现以下错误,如下所示:
pre_prcs = '(echo "'+username+'";echo "'+pin+'$'+token+'"; ' + 'echo y )> vps.ad ; /opt/cisco/anyconnect/bin/vpn -s connect "'+domain+'" < vps.ad'
subprocess.Popen(pre_prcs, shell=True, executable="/bin/bash", stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
类型错误:无法连接“str”和“file”对象
我该怎么办?非常感谢。
最佳答案
经过一番调整,我发现了问题并提出了以下解决方案。请注意下面 # Assign cmd 部分中的引号错误:
import subprocess
def __auth_cisco_vpn__(username, pin, domain):
# Grab Token
proc = subprocess.Popen(['stoken', 'tokencode'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
store = list(proc.stdout)
token = store[0].strip()
# Assign cmd
credentials = "printf '" + username + "\\n" + pin + token + "\\ny'"
vpn_cmd = "/opt/cisco/anyconnect/bin/vpn -s connect '" + domain + "'"
cmd = credentials + " | " + vpn_cmd
# Command Execution
print("Executing Command: \n" + cmd)
subprocess.Popen(cmd,
shell=True,
executable="/bin/bash",
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate()
__auth_cisco_vpn__('user.name', 'WXYZ', 'domain')
关于python - 通过 Python 连接 CISCO Anyconnect VPN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42705256/
我想每晚运行一个脚本,该脚本将: 启动VPN 执行SQL查询 断开VPN的 目前,我有1-3的脚本,但是在将它们作为任务进行调度时遇到了问题。 当我手动运行它们时,每个脚本都有效。 它也可以在我安排任
我无法让 CharlesProxy 在 Android 或 iOS 设备上运行。笔记本电脑和移动设备位于 Anyconnect VPN 之后。这里的任何指示都会有所帮助。谢谢。 最佳答案 我在 Cha
我正在尝试让我的系统自动化,每天晚上连接到客户端的 VPN 几个小时。客户要求我们使用 Cisco 的 Anyconnect VPN 客户端,但我们遇到了一些困难。我制作了一个可执行的 bash 脚本
我在 Ubuntu 20.04 上遇到 Cisco AnyConnect 问题。 当我启动 docker 容器(使用非主机网络驱动程序)时,Cisco AnyConnect 立即重新连接。 启动 do
我正在Windows上使用docker工具箱进行docker相关开发。当我在家庭或办公室网络上时,这工作正常,但当我使用 Anyconnect VPN 连接到办公室网络时,这不起作用。请告诉我是否有可
我正在尝试通过 python 函数连接到 CISCO Anyconnect VPN。我已经看到这里给出的方法: Connect CISCO Anyconnect VPN via bash 但首先我有几
如标题所述,尝试通过 bash 连接 vpn。以下脚本似乎最接近我正在寻找的答案: #!/bin/bash /opt/cisco/anyconnect/bin/vpn -s " 真的很简单! :D 关
所以我遇到了我认为是 Cisco AnyConnect 和 Vagrant/VirtualBox 的常见问题,我正在使用仅主机网络,以便我可以在某个 IP 上建立虚拟服务器例如 10.10.10.11
所以我可以在 WSL2 中使用 X11 转发,例如 How to set up working X11 forwarding on WSL2 .然后我在连接到 Cisco AnyConnect 服务器
当我使用 Cisco VPN Anyconnect 加入我的公司网络时,我无法让 docker-machine 连接到我的 virtualbox 虚拟机。这与 Cisco Anyconnect 接管所
在我使用 Windows XP 时一切都很好,但在升级到 Windows 7 后,我无法再在 VPN(Cisco AnyConnect)上使用 Eclipse 中的 RSE 访问远程系统(vms 和
我正在探索使用支持 iOS 的设备与需要企业网络外部 VPN 连接的服务器进行通信的可能性。我发现我可以使用 Cisco、F5、Juniper 等专有应用程序连接到 VPN。假设用户已使用这些应用程序
我是一名优秀的程序员,十分优秀!