How to use a linux expect script to enter answer a prompt for password

前端 未结 4 415
忘掉有多难
忘掉有多难 2021-01-19 00:05

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:



        
相关标签:
4条回答
  • 2021-01-19 00:23

    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!

    0 讨论(0)
  • 2021-01-19 00:23

    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.

    0 讨论(0)
  • 2021-01-19 00:37

    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.

    0 讨论(0)
  • 2021-01-19 00:41
    #!/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
    
    0 讨论(0)
提交回复
热议问题