Como você obtém uma conexão Cisco VPN para lembrar sua senha?

16

O problema

Eu tenho uma conexão Cisco IPSEC VPN nas minhas configurações de rede em uma máquina Yosemite. Funciona bem, além de solicitar uma senha em todas as conexões. A senha salva é totalmente ignorada.

fundo

Se eu inserir a senha nas configurações de rede e clicar em conectar, a senha salva desaparecerá e a caixa de diálogo solicitando uma senha será exibida. Eu verifiquei que a senha está correta (é copiada e colada de um documento).

Coisas que não funcionaram

  • Uma solução sugerida para o Snow Leopard foi salvar a senha, abrir o Acesso ao chaveiro, localizar a chave "Xauth" no chaveiro do sistema e conceder /usr/libexec/configdacesso à chave. Isso não teve efeito.

  • Reparo de permissões usuais / verificação de disco

Coisa estranha

Se eu assistir o acesso ao chaveiro enquanto pressiono o botão de conexão, a senha salva desaparece imediatamente do chaveiro quando a caixa de diálogo aparece.

Pergunta Geral

Como obtenho a senha salva corretamente, para não precisar recodificá-la em todas as conexões?

Mikey TK
fonte
Hmm. Também recebo problemas estranhos de autenticação no Yosemite, especialmente no diálogo Rede. Não ficaria surpreso se houver um bug envolvido.
N1000
Tem certeza de que isso não depende de políticas de VPN remotas (agora permitindo salvar senhas)?
Matteo Guarnerio
Isso .. explicaria por que ele desaparece do chaveiro se explicitamente salvo. Terá que conversar com os administradores da rede!
Mikey TK

Respostas:

13

Eu acho que você está usando o anyconnect para se conectar ao servidor VPN da Cisco. AnyConnect também pode ser usado no Terminal. Isso funciona no macOS Sierra e no AnyConnect 3.1.14018. Crie um script bash com o seguinte comando:

/opt/cisco/anyconnect/bin/vpn connect your-vpn.server.here -s <.credentials

E coloque os detalhes de login no arquivo .credentials com as três linhas a seguir:

0
your-username
your-password

Não se esqueça de colocar permissões razoáveis ​​nos arquivos.

Hans
fonte
O usuário declara "Eu tenho uma conexão VPN Cisco IPSEC em minhas configurações de rede em uma máquina Yosemite". Essa escolha de palavras me levou a concluir com bastante alta certeza de que eles estão usando a solução VPN
incorporada
você pode passar esse arquivo de alguma forma com os nomes de usuário e / ou senhas criptografados? como com o arquivo de senhas no Linux
forgotstackxpassword
8

Ao ler sua pergunta, tenho a impressão de que você está fazendo tudo corretamente e o Cisco VPN Server tem a opção de permitir salvar senhas definidas no lado do cliente disallow.

Eu sei com certeza que essa configuração existe.

GhostLyrics
fonte
6
Ainda é irritante que o cliente OS X permita essa disallowconfiguração. Assim como compilar o okular sem suporte a DRM para copiar uma frase de um diário revisado por pares, parece que essa é uma configuração fundamentalmente hostil ao usuário.
Landak 23/07
2

Ambas as respostas aqui, enquanto escrevo isso, têm o direito, mas a existência da vpnlinha de comando significa que podemos contornar esse design hostil ao usuário expect. Agradecemos aos respondentes anteriores, GhostLyrics por revelar a existência da opção do servidor que desativa o salvamento de senhas e Hans por revelar o vpncliente da linha de comando.

Crie um arquivo parecido com este:

#!/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

Preencha os setcampos normalmente. Se sua VPN é como a minha, você recebe uma lista de "grupos" ao executar o vpn connect. Execute isso uma vez manualmente e observe qual número corresponde ao grupo com o qual você deseja se conectar. Não será alterado entre as execuções, a menos que os administradores adicionem / removem grupos. Você não pode usar o nome aqui, o programa espera um número.

Depois que tudo estiver preenchido, chmod +xexecute esse script e execute-o. Agora posso conectar-me à minha VPN, mãos-livres!

Mikey TK
fonte
0

Roda livre a resposta de Hans - obrigado! - Eu queria simplificar um pouco a invocação, ignorando o Terminal e terminando com o ícone AnyConnect no menu Status do macOS. (Estou no Mojave 10.14.6.)

Primeiro, lance o terminal e mude para o diretório do binário do aplicativo AnyConnect:

$ cd "/Applications/Cisco/Cisco AnyConnect Secure Mobility Client.app/Contents/MacOS"

Faça uma cópia do binário original:

$ sudo cp \
"Cisco AnyConnect Secure Mobility Client" \
"Cisco AnyConnect Secure Mobility Client.orig"

Por fim, sobrescreva o arquivo inicial com um script de shell, alterando VPN hostpara o nome do host ou endereço da VPN usere pa$$w0rdpara suas credenciais:

$ 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

Agora, você deve poder executar o AnyConnect a partir do Spotlight ou do Finder, como de costume. Primeiro, nosso script se conectará e, em seguida, transferirá a execução para o aplicativo binário, para que o AnyConnect apareça no menu Status da área de trabalho.

Christian Campbell
fonte