कमांड लाइन से किसी भी कनेक्ट का उपयोग करके कनेक्ट करें


31

मैं एक सर्वर से कनेक्ट करने के लिए लिनक्स कमांड लाइन से किसी भी सिस्कोनेक्ट 3.1 का उपयोग करने की कोशिश कर रहा हूं। मैं कनेक्ट कर सकता हूं, लेकिन मुझे एक समय में एक पैरामीटर सबमिट करना होगा। मैं एक स्क्रिप्ट से जुड़ना चाहूंगा जो दूसरे सर्वर में चलेगी। क्या मै वह कर सकता हूं? कुछ इस तरह

vpn connect server_add group_name user_name passwd

कृपया हमें वह कमांड दिखाएं जिसका आप उपयोग करना चाहते हैं। क्या आपने सीमांकक का उपयोग करने की कोशिश की है?
तोग

कमांड 10.15.1.1 कनेक्ट / ऑप्ट / सिस्को / anyconnect / बिन / वीपीएन था लेकिन इसके बाद यह उपयोगकर्ता नाम और पासवर्ड को जोड़ता है और पूछता है। मैं जो चाहता हूं, यह सब एक लाइन में पास करना है। लेकिन मुझे इस पर कोई डॉक्स नहीं मिला। बस ग्राफिकल इंटरफ़ेस क्लाइंट का उपयोग करने पर।
केली गोएडर्ट

जवाबों:


31

यह मानकर /opt/cisco/anyconnect/bin/vpnagentdचल रहा है कि यह स्वचालित रूप से होना चाहिए:

कनेक्ट करने के लिए :

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

बदलें USERNAME, PASSWORDऔर HOST\nyअंत में लॉगिन बैनर को स्वीकार करने के लिए है - यह मेरा मेजबान के लिए विशिष्ट है।

'दोहरे उद्धरणों के बजाय एकल उद्धरणों पर ध्यान दें "- ऐसा इसलिए है क्योंकि डबल उद्धरण बैश को स्ट्रिंग्स के भीतर कुछ वर्णों की व्याख्या करने के लिए कहते हैं, जैसे कि विस्मयादिबोधक चिह्न, जैसे बैश इतिहास कमांड। यदि पासवर्ड में विस्मयादिबोधक चिह्न होता है, तो दोहरे उद्धरण इस कमांड को "ईवेंट नहीं मिला" त्रुटि के साथ विफल कर देगा। एकल-उद्धृत स्ट्रिंग उन्हें व्याख्या किए बिना विस्मयादिबोधक चिह्न पास करते हैं।

डिस्कनेक्ट करने के लिए :

/opt/cisco/anyconnect/bin/vpn disconnect

यह AnyConnect v3.1.05160 के साथ परीक्षण किया गया था।


5
यदि आपका क्लाइंट प्रमाणपत्र सत्यापन त्रुटि के कारण कनेक्ट नहीं होता है Certificate is from an untrusted source, और आप अभी भी कनेक्ट करना चाहते हैं, तो yउपरोक्त विधि में एक पैरामीटर पास करें ताकि कनेक्ट करने का कमांड बन जाए printf "y\nUSERNAME\nPASSWORD\ny" | /opt/cisco/anyconnect/bin/vpn -s connect HOST:। ध्यान दें कि ऐसा केवल उस स्थिति में करें जब आप पूरी तरह से अपने कनेक्शन पर भरोसा करते हैं; अन्यथा वहाँ कोई बिचौलिया बैठ सकता है और आप पर झपकी ले सकता है।
शिवांश

1
खूबसूरती से काम करता है (हालांकि मेरे संस्करण को एक की जरूरत है GROUPNAME\nUSERNAME\nPASSWORDy। यदि आप अपने पासवर्ड को कमांड से अलग रखना चाहते हैं (जो एक शेल स्क्रिप्ट या डॉटफ़ाइल कुंजी बाइंडिंग हो सकता है), तो आप ऐसा कर सकते हैं:cat ~/.anyconnect_credentials | /opt/cisco/anyconnect/bin/vpn -s connect HOST
श्रीधर सरनोबत

@SridharSarnobat क्रेडेंशियल कार्यों के लिए एक अलग फ़ाइल का उपयोग करना, लेकिन यह लॉग में आपके पासवर्ड को प्रिंट करता है जैसे:>> notice: Please respond to banner. MYPASSWORD
विलियन विएरा

4

मैं मैक ओएस एक्स टर्मिनल से सिस्को AnyConnect का उपयोग करने की कोशिश में एक ही कठिनाई में भाग गया। अपने इनपुट को मानक इनपुट से लेने के लिए सिस्को vpn कमांड प्राप्त करने के लिए, आपको -s विकल्प को निर्दिष्ट करना होगा, जो सिस्को 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

( ईओएफ के आसपास के उद्धरण निम्नलिखित इनपुट में कमांड / पैरामीटर विस्तार / प्रतिस्थापन को रोकने के लिए हैं।)

बाहर निकलने के अंत में सिस्को वीपीएन इंटरैक्टिव मोड से बाहर निकलने के लिए है।


2

मुझे कमांड लाइन को सरल करना पसंद है, इसलिए मैं गोवोक नामक शेल स्क्रिप्ट में उपरोक्त दृष्टिकोण का उपयोग करता हूं। ऊपर के रूप में, मुझे समूह, मेरा उपयोगकर्ता नाम और एक निजी पिन प्लस एक आरएसए सेक्यूरिड पासकोड से बना पासकी प्रदान करना होगा। मुझे उपरोक्त "स्वीकार" का जवाब नहीं देना है? सवाल। सब कुछ लेकिन RSA पासकोड स्क्रिप्ट में है, इसलिए कमांड लाइन है

$ gotowork <RSA passcode>

मुझे इसे जड़ के रूप में चलाना है। मान लें कि पिन 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 का उपयोग करना। डेबियन 6, लिनक्समिंट 17 पर परीक्षण किया गया


क्यों 0\nजरूरी है? या यह आपकी कंपनी के लिए विशिष्ट है?
एक्यूमेनस

@ABB यह कह रहा है कि आउटपुट एक शून्य है 0, उसके बाद एक नई लाइन है \nजिसके बाद यूज़रनेम, उसके बाद एक नई लाइन \nआदि ...
मैट फ्रीडमैन

@MattFriedman, मुझे पता है कि यह क्या कह रहा है, लेकिन मुझे नहीं पता कि यह क्यों आवश्यक है।
एक्यूमेनस

1
@ABB जब अंतःक्रियात्मक रूप से चल रहा है और आपका कनेक्शन समूहों का उपयोग करता है, तो संभावित समूहों की गणना की जाएगी। 0तब का अर्थ है "पहले समूह का उपयोग करें"।
jmd_dk

2

यह मेरे लिए 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

* मुझे पता है कि यह पीटर एस के उत्तर के समान है।


1
इसने मेरे लिए एल कैपिटान के लिए एक कमांड में काम किया,printf "y\n[GROUP]\n\n[PASSWORD]\ny\n" | /opt/cisco/anyconnect/bin/vpn -s connect HOST
राबिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.