私はopenconnect
Ubuntu 16.04 をターミナルで使用していますが、実行するには次の 3 つのフェーズを入力する必要があります。
- "はい・いいえ"
- 「ユーザー名」
- "パスワード"
上記のフェーズをバイパスするにopenconnect
はどうすればいいですか?線(例: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=