เชื่อมต่อโดยใช้ anyconnect จากบรรทัดคำสั่ง


31

ฉันพยายามใช้ Cisco anyconnect 3.1 จากบรรทัดคำสั่ง Linux เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ ฉันสามารถเชื่อมต่อได้ แต่ฉันต้องส่งพารามิเตอร์หนึ่งครั้ง ฉันต้องการเชื่อมต่อจากสคริปต์ที่จะทำงานในเซิร์ฟเวอร์อื่น ฉันจะทำสิ่งนั้นได้ไหม สิ่งที่ต้องการ

vpn connect server_add group_name user_name passwd

โปรดแสดงคำสั่งที่คุณต้องการใช้ คุณเคยลองใช้ตัวคั่นไหม
Tog

คำสั่งคือ / opt / cisco / anyconnect / bin / vpn เชื่อมต่อ 10.1.1.1 แต่หลังจากนั้นมันจะเชื่อมต่อและขอชื่อผู้ใช้รหัสผ่านและกลุ่ม สิ่งที่ฉันต้องการคือการส่งทั้งหมดนี้ในบรรทัดเดียว แต่ฉันไม่พบเอกสารใด ๆ เกี่ยวกับเรื่องนี้ เพียงแค่ใช้ไคลเอ็นต์กราฟิกอินเตอร์เฟส
Kelly Goedert

คำตอบ:


31

สมมติว่า/opt/cisco/anyconnect/bin/vpnagentdทำงานตามที่ควรจะเป็นโดยอัตโนมัติ:

วิธีเชื่อมต่อ :

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

แทนที่USERNAME, และPASSWORD ในตอนท้ายก็คือการยอมรับแบนเนอร์เข้าสู่ระบบ - นี้เป็นเฉพาะกับโฮสต์ของฉันHOST\ny

หมายเหตุเครื่องหมายอัญประกาศเดี่ยว'แทนอัญประกาศคู่"- นี่เป็นเพราะอัญประกาศคู่บอก Bash เพื่อตีความอักขระบางตัวภายในสตริงเช่นเครื่องหมายอัศเจรีย์, คำสั่ง Bash history เครื่องหมายคำพูดคู่จะทำให้คำสั่งนี้ล้มเหลวโดยมีข้อผิดพลาด "ไม่พบเหตุการณ์" หากรหัสผ่านมีเครื่องหมายอัศเจรีย์ สตริงที่ยกมาเดี่ยวผ่านเครื่องหมายอัศเจรีย์พร้อมโดยไม่ต้องตีความพวกเขา

วิธียกเลิกการเชื่อมต่อ :

/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โปรดทราบว่าทำเช่นนี้เฉพาะในกรณีที่คุณเชื่อถือการเชื่อมต่อของคุณอย่างแน่นอน ไม่อย่างนั้นอาจมีคนกลางนั่งและสอดแนมคุณ
shivams

1
ทำงานได้อย่างสวยงาม (แม้ว่าเวอร์ชั่นของฉันต้องการ a GROUPNAME\nUSERNAME\nPASSWORDy. หากคุณต้องการแยกรหัสผ่านออกจากคำสั่ง (ซึ่งอาจเป็นเชลล์สคริปต์หรือการผูกคีย์ dotfile) คุณสามารถทำได้:cat ~/.anyconnect_credentials | /opt/cisco/anyconnect/bin/vpn -s connect HOST
Sridhar Sarnobat

@SridharSarnobat การใช้ไฟล์แยกต่างหากสำหรับหนังสือรับรองทำงานได้ แต่มันพิมพ์รหัสผ่านของคุณในบันทึกเช่น:>> notice: Please respond to banner. MYPASSWORD
Willian Vieira

4

ฉันพบปัญหาเดียวกันลองใช้ Cisco AnyConnect จาก Mac OS X Terminal ในการรับคำสั่ง 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เพื่อป้องกันคำสั่ง / การขยายพารามิเตอร์ / การทดแทนในอินพุตต่อไปนี้)

ทางออกที่สิ้นสุดคือการออกจากโหมดโต้ตอบ Cisco VPN


2

ฉันชอบที่จะทำให้บรรทัดคำสั่งง่ายขึ้นดังนั้นฉันจึงใช้วิธีการด้านบนในเชลล์สคริปต์ชื่อ gotowork ก่อนหน้านี้ฉันต้องระบุกลุ่มชื่อผู้ใช้และรหัสผ่านที่ประกอบด้วย PIN ส่วนตัวพร้อมรหัสผ่าน RSA SecurID ฉันไม่ต้องตอบ "ยอมรับ" ข้างต้น คำถาม. ทุกอย่างยกเว้นรหัสผ่าน RSA อยู่ในสคริปต์ดังนั้นบรรทัดคำสั่งคือ

$ gotowork <RSA passcode>

ฉันต้องเรียกใช้มันเป็นราก สมมติว่า 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


ทำไมถึง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

* ฉันรู้ว่านี่คล้ายกับคำตอบของ Peter S. ด้านบน


1
สิ่งนี้ใช้ได้กับฉันในหนึ่งคำสั่งสำหรับ El Capitan,printf "y\n[GROUP]\n\n[PASSWORD]\ny\n" | /opt/cisco/anyconnect/bin/vpn -s connect HOST
Rabea
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.