Как войти через VPN используя ожидаемый - PullRequest
0 голосов
/ 10 марта 2020

Я новичок в ожидании, и я хочу использовать ожидаемый для входа в VPN. Я собрал фрагменты кода на форумах, но все еще не могу заставить его работать. Не удается отправить мой root пароль. Является ли синтаксис правильным. Ниже приведен пример команд, которые я запускаю вручную для входа в VPN. Заранее спасибо.

sudo openvpn 'US California.ovpn'
sudo] password for tony:password

Enter Auth Username: user
Enter Auth Password: password

Ожидаемый сценарий:

set vpnuser "user"
set vpnpassword "password"
set rootpassword "password9010"
spawn sudo openvpn 'US California.ovpn'
expect "*ssword: " 
send "$rootpassword\r" #mysetver password to login as root
expect "Enter Auth Username:\r:"
send "$vpnuser"
expect "Enter Auth Password:\r"
send "$vpnpassword"

1 Ответ

1 голос
/ 10 марта 2020

Если это приглашение, которое вы получаете:

sudo openvpn 'US California.ovpn'
sudo] password for tony:password

Enter Auth Username: user
Enter Auth Password: password

Тогда вы ожидаете неправильного после появления, так как выше также сказано: for tony Вам нужно написать expect "*password*:"

Аналогично вам следует написать другое ожидание, как это: expect "Enter Auth Username: " не нужно ставить \ r: также expect "Enter Auth Password: "

Так код становится:

set vpnuser "user"
set vpnpassword "password"
set rootpassword "password9010"
spawn sudo openvpn 'US California.ovpn'
expect "*password*:" 
send "$rootpassword\r" #mysetver password to login as root
expect "Enter Auth Username: "
send "$vpnuser\r"
expect "Enter Auth Password: "
send "$vpnpassword\r"

Надеюсь, это поможет

...