微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用STDOUT作为openvpn auth-user-pass的input

我写了一个bash脚本来自动连接到VPNBook的免费openvpn服务。 我通过调用一个python脚本来收集用户名密码,该脚本目前只是将它们打印到STDOUT。

收集用户名密码的python脚本是:

#!/bin/python # title: vpnbook-user-pass© # description: Gather vpnbooks username - password combinantion # author: jack herer # date: Tuesday 06 October 2015 @ 10:29:14 am # version: v1.0 # usage: python vpnbook-user-pass # notes: ~ # bash version: 4.3.30(1)-release #======================================== # copyright © | jack herer | 2015 #======================================== from bs4 import BeautifulSoup import requests response = requests.get('http://vpnbook.com/freevpn') soup = BeautifulSoup(response.text,'html.parser') pricing = soup.find(id = 'pricing') first_column = pricing.find('div',{'class': 'one-third'}) for li in first_column.find('ul',{'class': 'disc'}): if 'username' in str(li).lower(): username = li.find('strong').text print('The username and password combinantion is:') print(username) response = requests.get('http://vpnbook.com/freevpn') soup = BeautifulSoup(response.text,{'class': 'disc'}): if 'password' in str(li).lower(): password = li.find('strong').text print(password)

python脚本的STDOUT是:

The username and password combinantion is: vpnbook JE5Raphu

到目前为止的bash脚本:

mv命令移动文件但报告错误:不能统计没有这样的文件或目录

在Bash中将文件从2个文本文件移动到位置

如何删除在sed中给出的一个variables?

删除目录及其子目录中的所有文件types

惊喜! shell提示命令行开关

# !/bin/bash - # title: auto-vpn© # description: Automatically connect to vpnbook's free vpn service # author: jack herer # date: Thursday 08 October 2015 @ 11:49:21 am # version: v1.0 # usage: ./auto-vpn # notes: ~ # bash version: 4.3.30(1)-release #======================================== # copyright © | jack herer | 2015 #======================================== userpass=$(python ~/vpnbook-user-pass) echo "${userpass} " cd $HOME/vpnbook/ openvpn --config vpnbook-euro1-tcp443.ovpn

最后一个命令openvpn --config vpnbook-euro1-tcp443.ovpn然后运行,并要求我input用户名密码,如下所示:

Thu Oct 8 13:20:28 2015 OpenVPN 2.3.4 i586-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Dec 1 2014 Thu Oct 8 13:20:28 2015 library versions: OpenSSL 1.0.1k 8 Jan 2015,LZO 2.08 Enter Auth Username: Enter Auth Password:

我怎样才能让我的脚本input与Python脚本收集的用户名密码

我不介意这是一个bash或python脚本,所有选项都是打开的,但必须是bash或python。

如何不使用tmp dir重新打包zip文件

将前100个正则expression式匹配的文件名复制到unix中的另一个目录

用sed添加一个内核参数到grub

当试图在Linux上运行一个shell脚本时,“不能执行二进制文件

bash / scp如何扩展“远程”全局模式?

看一下--auth-user-pass选项( 这里 )。

对你来说,最简单的方法是从你的python脚本中删除用户名密码组合:”的行, 然后从bash这种方式启动openvpn (适用于我):

openvpn --config vpnbook-euro1-tcp443.ovpn --auth-user-pass <( python ~/vpnbook-user-pass )

一般来说,像这样的:

openvpn --config vpnbook-euro1-tcp443.ovpn --auth-user-pass <( echo -e "${userName}n${password}" )

也应该工作(为我工作)。

或者,您可以将凭据保存到文件(确保它不是世界可读的),并在--auth-user-pass之后将此文件作为参数--auth-user-pass 。

看到这个问题 。

编辑>

确认这是工作(对我来说):

#!/usr/bin/python from bs4 import BeautifulSoup import requests response = requests.get('http://vpnbook.com/freevpn') soup = BeautifulSoup(response.text,{'class': 'disc'}): if 'username' in str(li).lower(): username = li.find('strong').text if 'password' in str(li).lower(): password = li.find('strong').text print(username) print(password)

在bash中使用:

openvpn --config vpnbook-euro1-tcp443.ovpn --auth-user-pass <( ./fvpn3.py )

openvpn --version输出openvpn --version :

OpenVPN 2.3.4 x86_64-pc-linux-gnu [SSL(OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6]建立于2014年12月1日

库版本:OpenSSL 1.0.1k 2015年1月8日,LZO 2.08

最初由James Yonan开发

版权所有(C)2002-2010 OpenVPN Technologies,Inc.

编译时间定义如下:enable_crypto = yes enable_debug = yes enable_def_auth = yes enable_dependency_tracking = no enable_dlopen = unkNown enable_dlopen_self = unkNown enable_dlopen_self_static = unkNown enable_fast_install = yes enable_fragment = yes enable_http_proxy = yes enable_iproute2 = yes enable_libtool_lock = yes enable_lzo = yes enable_lzo_stub = no enable_maintainer_mode = no enable_management = yes enable_multi = yes enable_multihome = yes enable_pam_dlopen = no enable_password_save = yes enable_pedantic = no enable_pf = yes enable_pkcs11 = yes enable_plugin_auth_pam = yes enable_plugin_down_root = yes enable_plugins = yes enable_port_share = yes enable_selinux = no enable_server = yes enable_shared = yes enable_shared_with_static_runtimes = no enable_small = no enable_socks = yes enable_ssl = yes enable_static = yes enable_strict = no enable_strict_options = no enable_systemd = yes enable_win32_dll = yes enable_x509_alt_username = yes with_crypto_library = openssl with_gnu_ld = yes with_ifconfig_path = / sbin / ifconfig with_iproute_path = / sbin / ip with_mem_chec k = no with_plugindir ='$ {prefix} / lib / openvpn'with_route_path = / sbin / route with_sysroot = no

git revision:refs / heads / jessie / b35ad09bfc4a26e7

(请注意enable_password_save=yes )

bash --version输出bash --version :

GNU bash,版本4.3.30(1)-release(x86_64-pc-linux-gnu)

copyright(C)2013 Free Software Foundation,Inc.

许可证GPLv3 +:GNU GPL版本3或更高http://gnu.org/licenses/gpl.html

祝你好运!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐