![](/img/trans.png)
[英]How to use a linux expect script to reconnect to forticlientvpn
[英]How to use a linux expect script to enter answer a prompt for password
我在編寫腳本時遇到一些麻煩,該腳本將啟動我的forticlient vpn命令行客戶端並在提示時發送我的密碼。 這是我的代碼:
#!/usr/bin/expect -f
set loadme "./forticlientsslvpncli --server myvpnserver --vpnuser theuser
eval spawn $loadme
expect "Password for VPN: "
send "password\r"
但是,它仍然提示輸入vpn密碼。 我確信這是一個簡單的東西,我對linux腳本很新,但任何幫助將不勝感激!
謝謝!
#!/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
根據我從格倫傑克曼那里得到的評論,我能夠發現密碼提示沒有匹配。 我將我的第一行更改為#!/var/bin/expect -d
,它提供了必要的調試輸出以找出問題並修復它。
謝謝格倫!
您的代碼語法可能有誤或者密碼錯誤。 所以你可以在期望的提示下嘗試它 - 逐行調試它。
您可以使用forticlientsslvpn_cli
和Expect來輸入密碼。
這里提供完整的解決方案:
https://gist.github.com/azizasm/e216bc47b54f5b68405f3c8f8b832e8a
注意:如果VPN斷開連接,此解決方案將自動重新連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.