Ubuntu 16.04를 터미널에서 사용하고 있는데 openconnect
, 이를 실행하려면 다음 세 단계를 입력해야 합니다.
- "예 아니오"
- "사용자 이름"
- "비밀번호"
openconnect
in을 사용하여 위 단계를 어떻게 우회할 수 있습니까 ?한 줄(예: openconnect
옵션 사용)?
다음 줄과 같은 옵션이 있습니까?
sudo openconnect <server-name> --user=<'username'> --pass=<'password'>
사용자 이름을 입력하는 방법을 사용 openconnect --help
하고 찾았지만 비밀번호 및 SSL 확인을 입력하는 방법은 전혀 모릅니다.
답변1
man openconnect
터미널에 입력하면 다음과 같은 메시지가 나타납니다.사용법을 설명하는 매뉴얼 페이지.
관련 섹션:
-u,--user=NAME
로그인 사용자 이름을 NAME으로 설정--passwd-on-stdin
표준 입력에서 비밀번호 읽기
또한 인증서 경고를 비활성화해야 할 수도 있습니다.
--no-cert-check
서버 SSL 인증서가 유효할 것을 요구하지 않습니다. 검사는 계속 진행되며 실패하면 경고 메시지가 표시되지만 연결은 계속 유지됩니다. 이 옵션을 사용할 필요는 없습니다. 서버에 신뢰할 수 있는 인증 기관에서 서명하지 않은 SSL 인증서가 있는 경우에도 해당 인증서(또는 사설 CA)를 로컬 파일에 추가하고 --cafile 옵션과 함께 해당 파일을 사용할 수 있습니다. .
또는 인증서를 파일에 추가할 수도 있습니다.
이 모든 것을 결합할 수 있습니다:
echo "password" | sudo openconnect server --user=username --passwd-on-stdin --no-cert-check
답변2
다음 명령을 사용하여 sudo 비밀번호, VPN 사용자, VPN 비밀번호 및 보조 질문을 모두 자동화할 수 있었습니다(mac에서 테스트됨).
challange=<code> && sudo -S <<< "<sudo_password>" echo I am super user && { printf '<vpn_password>\n'; sleep 1; printf "$challange\n"; } | sudo openconnect <server_name> --user <vpn_username> --passwd-on-stdin
답변3
이것은 나에게 효과적입니다.
echo mypassword | openconnect --protocol=anyconnect --user=myusername --passwd-on-stdin
답변4
솔루션을 읽으면서 마침내 이것이 저에게 효과적인 스크립트입니다.
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert SERVERCERT
SERVERCERT 없이 위 명령을 실행하는 경우(왜냐하면 당신은 그것을 가지고 있지 않기 때문입니다), 그것은오류그 안에 SERVERCERT가 포함되어 있는 경우 다음과 같습니다.
Server SSL certificate didn't match: pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=
그게 전부입니다. pin-sha256으로 시작하는 문자열:...(전체, pin-sha256 자체 포함)은 SERVERCERT입니다.
그래서? 예를 들어 이 경우의 최종 결과는 다음과 같습니다.
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=