I am having some trouble writing a script that will launch my forticlient vpn command line client and send my password when it is prompted. Here is my code:
#!/usr/bin/expect -f
set loadme "./forticlientsslvpncli --server myvpnserver --vpnuser theuser
eval spawn $loadme
expect "Password for VPN: "
send "password\r"
However, it still prompts for the vpn password. I am sure it is something simple and I am pretty new to linux scripting, but any help would be greatly appreciated!
Thanks!
You may use
forticlientsslvpn_cli
with Expect to feed in the password.A complete solution available here:
https://gist.github.com/azizasm/e216bc47b54f5b68405f3c8f8b832e8a
Note: this solution will auto reconnect the if the VPN get disconnected.
Your code syntax could be wrong or given password could be wrong. So you can try it on expect prompt - line by line to debug it.
From the comment I got from glenn jackman I was able to figure out that the password prompt was not being matched. I changed my first line to
#!/var/bin/expect -d
which provided the necessary debugging output to find out the problem and fix it.Thanks Glenn!