LinuxコマンドラインからCisco anyconnect 3.1を使用してサーバーに接続しようとしています。接続できますが、一度に1つのパラメータを送信する必要があります。別のサーバーで実行されるスクリプトから接続したいと思います。それをしてもいいですか?何かのようなもの
vpn connect server_add group_name user_name passwd
/opt/Cisco/anyconnect/bin/vpnagentd
が自動的に次のように実行されていると仮定します。
宛先接続:
printf 'USERNAME\nPASSWORD\ny' | /opt/Cisco/anyconnect/bin/vpn -s connect Host
USERNAME
、PASSWORD
、およびHost
を置き換えます。最後の\ny
はログインバナーを受け入れることです-これは私のホストに固有です。
二重引用符'
ではなく、単一引用符"
に注意してください。これは、二重引用符がBashに、感嘆符などの文字列内の特定の文字をBash履歴コマンドとして解釈するよう指示するためです。パスワードに感嘆符が含まれている場合、二重引用符でこのコマンドを実行すると、「event not found」エラーで失敗します。一重引用符で囲まれた文字列は、解釈せずに感嘆符を渡します。
宛先切断:
/opt/Cisco/anyconnect/bin/vpn disconnect
これはAnyConnect v3.1.05160でテストされました。
Mac OS XターミナルからCisco AnyConnectを使用するのと同じ問題に遭遇しました。 Cisco vpnコマンドで入力を標準入力から取得するには、-sオプションを指定する必要があります。これにより、Cisco vpnコマンドがインタラクティブモードになります。次に、対話モードで与える応答を提供できます。
必要な応答は、VPNサーバー管理者がサーバーを構成した方法によって異なります。私にとって、VPNインタラクティブプロンプトは
Group:
Username:
Password:
Blah, blah, blah, ...
accept? :
だから私が実行するコマンドは
$ /opt/Cisco/anyconnect/bin/vpn -s connect vpn.example.com <<"EOF"
0
username
password
y
exit
EOF
([〜#〜] eof [〜#〜]を囲む引用符は、次の入力でのコマンド/パラメーターの展開/置換を防ぐためのものです。)
最後のexitは、Cisco VPNインタラクティブモードを終了するためのものです。
OSX El Capitanではこれがうまくいきました。プレースホルダーは[角括弧]で囲まれています。
有効にする
/opt/Cisco/anyconnect/bin/vpn -s connect [Host_ADDRESS] <<"EOF"
[VPN_USERNAME]
[VPN_PASSWORD]
y
EOF
無効にする
/opt/Cisco/anyconnect/bin/vpn disconnect
*これはピーター・Sの上記の答えに似ています。
コマンドラインを単純化するのが好きなので、gotoworkという名前のシェルスクリプトで上記のアプローチを使用します。上記のように、グループ、ユーザー名、およびプライベートPINとRSA SecurIDパスコードで構成されるパスキーを提供する必要があります。上記の「同意しますか?」質問。RSAパスコード以外はすべてスクリプトに含まれているため、コマンドラインは
$ gotowork <RSA passcode>
Rootで実行する必要があります。 PINが1234であると仮定します。スクリプトの基本事項:
# put the interactive answers into a text file
echo -e "0\nusername\n1234$1\n" > /tmp/answers.txt
# find the path to the anyconnect executables
ciscopath="$(dirname $(find /opt/Cisco -depth -name vpnagentd))"
# make sure the anyconnect daemon is running
[ $(pidof vpnagentd) ] || $ciscopath/vpnagentd
# connect
$ciscopath/vpn -s < /tmp/answers.txt connect remote.mycompany.com
Anyconnect 3.1.05170を使用します。 Debian 6、LinuxMint 17でテスト済み