문제
요세미티 머신의 네트워크 설정에 Cisco IPSEC VPN 연결이 있습니다. 모든 단일 연결에서 암호를 묻지 않고 잘 작동합니다. 저장된 비밀번호는 완전히 무시됩니다.
배경
네트워크 설정에서 암호를 입력하고 연결을 클릭하면 저장된 암호가 사라지고 암호를 묻는 대화 상자가 나타납니다. 비밀번호가 올바른지 확인했습니다 (문서에서 복사하여 붙여 넣기).
작동하지 않는 것
-
Snow Leopard 의 제안 된 해결책 은 암호를 저장하고 키 체인 액세스를 열고 시스템 키 체인에서 “Xauth”키를 찾은 다음 키에 대한
/usr/libexec/configd
액세스 권한을 부여 하는 것입니다. 이것은 효과가 없었습니다. -
일반적인 권한 복구 / 디스크 검사 항목
이상한 것들
연결 버튼을 눌렀을 때 키 체인 액세스를 보면 대화 상자가 나타나면 저장된 비밀번호 가 키 체인에서 바로 사라집니다 .
전반적인 질문
모든 연결에서 암호를 다시 입력 할 필요가 없도록 암호를 올바르게 저장하려면 어떻게합니까?
답변
Cisco VPN 서버에 연결하기 위해 anyconnect를 사용하고 있다고 생각합니다. AnyConnect는 터미널에서도 사용할 수 있습니다. 이것은 macOS Sierra 및 AnyConnect 3.1.14018에서 작동합니다. 다음 명령으로 bash 스크립트를 작성하십시오.
/opt/cisco/anyconnect/bin/vpn connect your-vpn.server.here -s <.credentials
그리고 로그인 세부 정보를 .credentials 파일에 다음 세 줄로 입력하십시오.
0
your-username
your-password
파일에 대해 적절한 권한을 부여하는 것을 잊지 마십시오.
답변
귀하의 질문을 읽음으로써 귀하가 모든 것을 올바르게하고 있다는 인상을 얻었으며 Cisco VPN Server에는 클라이언트 측에 암호를 저장할 수있는 옵션이 disallow
있습니다.
나는 그러한 설정이 존재한다는 것을 확실히 알고 있습니다.
답변
이 글을 작성할 때 여기에 두 가지 대답이 모두 권리가 있지만 vpn
명령 줄 이 존재 한다는 것은 우리 가이 사용자 적대적 디자인을 해결할 수 있음을 의미합니다 expect
. 비밀번호 저장 기능을 해제하는 서버 측 옵션의 존재를 밝힌 이전 답변자, GhostLyrics와 vpn
명령 행 클라이언트를 표시 한 Hans에게 감사드립니다 .
다음과 같은 파일을 작성하십시오.
#!/usr/bin/expect --
set timeout 10
set addr "" # VPN Host
set user "" # Username
set pass "" # Password (ensure that special characters are escaped)
set group "" # Group NUMBER shown in connect prompt
spawn /opt/cisco/anyconnect/bin/vpn connect $addr
expect "\r\nGroup:*"
send -- "$group\r"
expect "\r\nUsername:*"
send -- "$user\r"
expect "Password: "
send -- "$pass\r"
expect eof
set
정상적으로 필드를 작성하십시오 . VPN이 내 것과 같으면를 실행할 때 “그룹”목록이 제공됩니다 vpn connect
. 이것을 손으로 한 번 실행하고 연결하려는 그룹에 해당하는 번호를 확인하십시오. 관리자가 그룹을 추가 / 제거하지 않으면 실행간에 변경되지 않습니다. 여기서 이름을 사용할 수 없습니다. 프로그램은 숫자를 기대합니다.
모든 것이 채워지면 chmod +x
이 스크립트를 실행하십시오. 이제 핸즈프리로 VPN에 연결할 수 있습니다!
답변
오프 자유 분방 한 한스 ‘ 대답하는 것은 고마워요! – 내가 터미널을 우회하고, 맥 OS 상태 메뉴의 애니 커넥트 아이콘으로 끝나는 호출을 조금 간소화하고 싶었다. (저는 모하비 10.14.6입니다.)
먼저 터미널을 시작한 다음 AnyConnect 애플리케이션 바이너리의 디렉토리로 변경하십시오.
$ cd "/Applications/Cisco/Cisco AnyConnect Secure Mobility Client.app/Contents/MacOS"
원래 바이너리를 복사하십시오.
$ sudo cp \
"Cisco AnyConnect Secure Mobility Client" \
"Cisco AnyConnect Secure Mobility Client.orig"
마지막으로, 변화, 쉘 스크립트로 초기 파일을 덮어 쓰기 VPN host
하여 VPN 호스트 이름 또는 주소로 user
및 pa$$w0rd
자격 증명에 :
$ sudo cat > "Cisco AnyConnect Secure Mobility Client" <<'SCRIPT'
#!/bin/sh
# The AnyConnect vpn utility takes some options and commands or
# else runs interactively. The help command shows that -s reads
# a script from STDIN and that connect takes a host as argument.
# connect gets the username and password from STDIN. We will
# supply them from a heredoc with the -s option.
/opt/cisco/anyconnect/bin/vpn -s \
connect "VPN host" <<'CREDENTIALS'
user
pa$$w0rd
CREDENTIALS
exec "$0.orig" # invoke the original app
SCRIPT
이제 평소와 같이 Spotlight 또는 Finder에서 AnyConnect를 실행할 수 있습니다. 먼저 스크립트가 연결되고 앱 바이너리로 실행이 전달되므로 AnyConnect가 데스크탑 상태 메뉴에 나타납니다.