我openconnect
在Ubuntu 16.04終端使用,當我想運行它時,我需要進入三個階段:
- “是/否”
- "使用者名稱"
- “密碼”
如何使用openconnect
in繞過上述階段一條線(例如使用openconnect
選項)?
是否有任何選項,例如以下行?
sudo openconnect <server-name> --user=<'username'> --pass=<'password'>
我使用openconnect --help
並找到了一種填寫使用者名稱的方法,但我不知道如何填寫密碼和 SSL 驗證。
答案1
如果您man openconnect
在終端中輸入,您將得到一個描述用法的手冊頁。
相關部分:
-u,--user=NAME
將登入使用者名稱設定為 NAME--passwd-on-stdin
從標準輸入讀取密碼
此外,您可能需要停用憑證警告:
--no-cert-check
不要求伺服器 SSL 憑證有效。檢查仍然會發生,失敗會導致警告訊息,但連線無論如何都會繼續。您不需要使用此選項 - 如果您的伺服器具有未經受信任的憑證授權單位簽署的 SSL 證書,您仍然可以將它們(或您的私人 CA)新增至本機檔案並透過 --cafile 選項使用該檔案。
或者您可以將證書新增到文件中。
所有這些都可以結合起來:
echo "password" | sudo openconnect server --user=username --passwd-on-stdin --no-cert-check
答案2
我能夠使用以下命令自動執行 sudo 密碼、VPN 用戶、VPN 密碼和二次質詢(在 Mac 上測試):
challange=<code> && sudo -S <<< "<sudo_password>" echo I am super user && { printf '<vpn_password>\n'; sleep 1; printf "$challange\n"; } | sudo openconnect <server_name> --user <vpn_username> --passwd-on-stdin
答案3
這對我有用:
echo mypassword | openconnect --protocol=anyconnect --user=myusername --passwd-on-stdin
答案4
當我閱讀解決方案時,最後這是對我有用的腳本:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert SERVERCERT
當您在沒有 SERVERCERT(因為你沒有它),它給了錯誤對您而言,其中包含 SERVERCERT,類似於:
Server SSL certificate didn't match: pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=
就是這樣,以 pin-sha256 開頭的字串:...(整個字串,包括 pin-sha256 本身)是您的 SERVERCERT
所以?例如本例的最終結果是:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=