1

我使用以下方式从控制台连接到 VPN:

sudo openvpn my.conf
[sudo] password for user:
Enter Auth Username:my_user
Enter Auth Password:

我不关心手动输入管理员密码,但我想自动化 vpn 身份验证,我认为期望是我需要做的,但我不知道如何使用它,而且我从未编写过 bash 脚本。

有人可以向我展示一个使用 expect 的简单 bash 脚本,以便我可以使用它吗?

4

3 回答 3

5

类似的东西(未经测试)

#!/bin/usr/expect -f
spawn sudo openvpn my.conf
expect -r "\[sudo\] .*\: " {
    send "my_ownpassword\n"
}
expect "Enter Auth Username:" {
    send "my_user\n"
}
expect "Enter Auth Password:" {
    send "my_vpnpassword\n"
}
interact
于 2012-07-02T19:16:47.917 回答
0

或者可能是这样的:

#!/usr/bin/expect -f  

# Constants  
set user "my_user"  
set pass "blablabla"  
set sudo_pass "blablabla"  
set timeout -1  

# Options  
match_max 100000  
log_user 0  

# Access to device  
spawn sudo openvpn my.conf
expect "[sudo]*"  
send -- "$sudo_pass\r"  

expect "*?sername:*"  
send -- "$user\r"

expect "*?assword:*"  
send -- "$pass\r"

interact
close
于 2012-10-16T15:32:02.030 回答
0

!/usr/bin/expect -f

信誉度

设置用户“用户名”
设置密码“密码”

生成 openvpn 文件.ovpn

期望 " ?sername: "
发送 -- "$user\r"

期望 " ?assword: "
发送 -- "$pass\r"

亲密互动

于 2012-12-18T23:55:26.940 回答