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:
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!
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.
#!/usr/bin/expect -f
set timeout -1
cd /usr/local/forticlientsslvpn
spawn ./forticlientsslvpn_cli --server myhost:10443 --vpnuser myuser
expect "Password for VPN:" {send -- "mypassword\r"}
expect "to this server? (Y/N)\r" {send -- "y\r"}
expect eof