Linux 명령 줄에서 Cisco anyconnect 3.1을 사용하여 서버에 연결하려고합니다. 연결할 수 있지만 한 번에 하나의 매개 변수를 제출해야합니다. 다른 서버에서 실행될 스크립트에서 연결하고 싶습니다. 내가 할 수 있습니까? 같은 것
vpn connect server_add group_name user_name passwd
Linux 명령 줄에서 Cisco anyconnect 3.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 history 명령으로 해석하도록 지시하기 때문입니다. 큰 따옴표는 암호에 느낌표가 포함 된 경우 "이벤트를 찾을 수 없음"오류와 함께이 명령이 실패하게합니다. 작은 따옴표로 묶인 문자열은 해석하지 않고 느낌표를 전달합니다.
연결 을 끊으 려면 :
/opt/cisco/anyconnect/bin/vpn disconnect
이것은 AnyConnect v3.1.05160으로 테스트되었습니다.
Certificate is from an untrusted source
계속 연결하려는 y
경우 위의 방법 으로 매개 변수 를 전달 하여 연결 명령이 다음과 같이되도록하십시오 printf "y\nUSERNAME\nPASSWORD\ny" | /opt/cisco/anyconnect/bin/vpn -s connect HOST
. 연결을 절대적으로 신뢰하는 경우에만이 작업을 수행하십시오. 그렇지 않으면 중개인이 앉아 스누핑 할 수 있습니다.
GROUPNAME\nUSERNAME\nPASSWORDy
.이 필요합니다 . 비밀번호를 명령과 분리하려면 (쉘 스크립트 또는 도트 파일 키 바인딩 일 수 있음) 다음과 같이하면됩니다.cat ~/.anyconnect_credentials | /opt/cisco/anyconnect/bin/vpn -s connect HOST
>> notice: Please respond to banner. MYPASSWORD
Mac OS X 터미널에서 Cisco AnyConnect를 사용하는 것과 같은 어려움이 발생했습니다. Cisco vpn 명령이 표준 입력에서 입력을 가져 오려면 Cisco vpn 명령을 대화식 모드로 설정하는 -s 옵션을 지정해야합니다. 그런 다음 대화식 모드에서 제공하는 응답을 제공 할 수 있습니다.
제공해야하는 응답은 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을 대화 형 모드를 종료하는 것입니다.
커맨드 라인을 단순화하고 싶기 때문에 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. 데비안 6, LinuxMint 17에서 테스트
0\n
필요한가요? 아니면 회사에만 해당됩니까?
0
, 줄 바꿈 \n
, 사용자 이름, 줄 바꿈 \n
등을 말합니다 .
0
"첫 번째 그룹 사용"을 의미합니다.
이것이 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.의 답변과 유사하다는 것을 알고 있습니다.
printf "y\n[GROUP]\n\n[PASSWORD]\ny\n" | /opt/cisco/anyconnect/bin/vpn -s connect HOST