Networking
OpenConnect:執行身份驗證請求時傳遞使用者密碼?
目前我正在使用以下命令執行身份驗證請求以獲取伺服器證書(FINGERPRINT)和
OpenConnect
-Cookie:openconnect --authenticate --user=<username> "VPN host"
因此,我總是必須在稍後出現的使用者提示中輸入我的密碼。
是否有一個選項可用於將密碼傳遞到
OpenConnect
上層命令中?例如,通過擴展命令…
openconnect --authenticate --user=<username> password=<password> "VPN host"
… ?
挑戰在於:
使用者RuiFRibeiro的想法只是在命令中回顯密碼。不幸的是,這在我們的例子中不起作用,因為伺服器在到達第二個提示(=密碼提示)之前又提供了一個使用者提示。
它會這樣發生:
- 第一個使用者提示:伺服器說
- “請選擇是要隧道傳輸所有流量還是僅傳輸特定流量。
- “輸入
Tunnel all
或Tunnel company
”。
- 第二個使用者提示:伺服器在說
- “請輸入您的密碼。 ”
正如你所看到的,一個簡單
echo
的問題會給出錯誤的答案。:-)對於可能的
expect
-script 插入文本之前的真實(確切)伺服器請求如下:
- 第一個提示:
GROUP: [tunnel MyCompany|tunnel all]:
,答案插入應該是tunnel MyCompany
- 第二個提示:
Password:
,答案插入應該是123456789
通常,VPN 軟體不允許為使用者輸入密碼,因為這被認為存在安全風險。
一種可能的解決方案是通過管道輸入密碼,如下所示:
echo -e "Tunnel all\nYourPassword" | openconnect --authenticate --user=<username> "VPN host"
如果我們談論的是您對這種編寫腳本的方法感興趣:
- 請務必了解將密碼保存在文件中的安全隱患,並將該文件的讀取權限僅限於執行該
openconnect
命令的使用者。PS 用您的真實密碼替換 YourPassword