Pertanyaan Hubungkan menggunakan anyconnect dari baris perintah


Saya mencoba menggunakan cisco anyconnect 3.1 dari baris perintah linux untuk terhubung ke server. Saya dapat terhubung, tetapi saya harus mengirimkan satu parameter dalam satu waktu. Saya ingin terhubung dari skrip yang akan berjalan di server lain. Bisakah saya melakukan itu? Sesuatu seperti

vpn menghubungkan server_add group_name user_name passwd


20
2017-09-24 11:35


asal


Tolong tunjukkan kami perintah yang ingin Anda gunakan. Sudahkah Anda mencoba menggunakan pembatas? - Tog
Perintahnya adalah / opt / cisco / anyconnect / bin / vpn connect 10.1.1.1 Tapi setelah itu menghubungkan dan meminta nama pengguna, kata sandi dan grup. Yang saya inginkan adalah melewatkan semua ini dalam satu baris. Tetapi saya tidak dapat menemukan dokumen apa pun tentang ini. Hanya menggunakan klien antarmuka grafis. - Kelly Goedert


Jawaban:


Asumsi /opt/cisco/anyconnect/bin/vpnagentd berjalan sebagaimana seharusnya secara otomatis:

Untuk menghubungkan:

printf 'USERNAME\nPASSWORD\ny' | /opt/cisco/anyconnect/bin/vpn -s connect HOST

Menggantikan USERNAME, PASSWORD, dan HOST. Itu \ny pada akhirnya adalah menerima spanduk login - ini khusus untuk host saya.

Perhatikan tanda kutip tunggal ' bukannya tanda kutip ganda " - ini karena tanda kutip ganda memberitahu Bash untuk menafsirkan karakter tertentu dalam string, seperti tanda seru, sebagai perintah sejarah Bash. Tanda kutip ganda akan membuat perintah ini gagal dengan kesalahan "peristiwa tidak ditemukan" jika kata sandi mengandung tanda seru. String yang dikutip tunggal memberikan tanda seru tanpa menginterpretasikannya.

Untuk memutuskan:

/opt/cisco/anyconnect/bin/vpn disconnect

Ini diuji dengan AnyConnect v3.1.05160.


18
2017-11-09 05:46



Jika klien Anda tidak terhubung karena kesalahan validasi sertifikat Certificate is from an untrusted source, dan Anda masih ingin terhubung kemudian lewat a yparameter dalam metode di atas sehingga perintah untuk terhubung menjadi: printf "y\nUSERNAME\nPASSWORD\ny" | /opt/cisco/anyconnect/bin/vpn -s connect HOST. Perhatikan bahwa lakukan ini hanya jika Anda benar-benar mempercayai koneksi Anda; jika tidak, mungkin ada perantara yang duduk di dalam dan mengintip ke Anda. - shivams


Saya mengalami kesulitan yang sama mencoba menggunakan Cisco AnyConnect dari Mac OS X Terminal. Untuk mendapatkan perintah Cisco vpn untuk mengambil input dari input standar, Anda harus menentukan opsi -s, yang menempatkan perintah Cisco vpn ke dalam mode interaktif. Kemudian Anda dapat memberikan tanggapan yang Anda berikan dalam mode interaktif.

Tanggapan yang perlu Anda berikan tergantung pada bagaimana administrator server VPN mengkonfigurasi server. Bagi saya, perintah interaktif vpn adalah

Group: 
Username: 
Password: 

Blah, blah, blah, ...
accept? :

Jadi perintah yang saya jalankan adalah

$ /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.com <<"EOF"
0
username
password
y
exit
EOF

(Kutipan sekitar EOF adalah untuk mencegah ekspansi / substitusi perintah / parameter dalam input berikut.)

Itu keluar pada akhirnya adalah untuk keluar dari mode interaktif Cisco vpn.


3
2018-03-09 02:57



+1 untuk secara eksplisit menyerukan perlunya tanda -s - lreeder


Saya suka menyederhanakan baris perintah, jadi saya menggunakan pendekatan di atas dalam skrip shell bernama gotowork. Seperti di atas, saya perlu menyediakan grup, nama pengguna saya, dan kunci sandi yang terdiri dari PIN pribadi plus kode sandi SecurID RSA. Saya tidak harus menjawab "terima?" Di atas. pertanyaan. Semuanya kecuali kode RSA ada di skrip, jadi baris perintahnya

$ gotowork <RSA passcode>

Saya harus menjalankannya sebagai root. Asumsikan PIN adalah 1234. Naskah penting:

# 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

Menggunakan anyconnect 3.1.05170. Diuji pada Debian 6, LinuxMint 17


2
2017-08-23 14:31



Kenapa 0\n perlu? Atau itu khusus untuk perusahaan Anda? - A-B-B
@ A-B-B Itu hanya mengatakan output nol 0, diikuti oleh baris baru \n diikuti oleh nama pengguna, diikuti oleh baris baru \n dll ... - Matt Friedman
@MattFriedman, saya tahu apa yang dikatakannya, tetapi saya tidak tahu mengapa itu perlu sama sekali. - A-B-B
@ A-B-B Saat menjalankan interaktif dan koneksi Anda menggunakan grup, kelompok yang mungkin akan disebutkan. 0 berarti "gunakan grup pertama". - jmd_dk


Inilah yang berhasil bagi saya di OSX El Capitan. Placeholder berada dikelilingi oleh [square braces].

Untuk mengaktifkan

/opt/cisco/anyconnect/bin/vpn -s connect [HOST_ADDRESS] <<"EOF"
[VPN_USERNAME]
[VPN_PASSWORD] 
y
EOF

Untuk Nonaktifkan

/opt/cisco/anyconnect/bin/vpn disconnect

* Saya tahu ini mirip dengan jawaban Peter S. di atas.


1
2017-11-28 20:14



Ini bekerja untukku dalam satu perintah untuk El Capitan, printf "y\n[GROUP]\n\n[PASSWORD]\ny\n" | /opt/cisco/anyconnect/bin/vpn -s connect HOST - Rabea