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?


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.


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.


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!


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.