Estou tendo alguns problemas com a SSH KeychainIntegration no OS X Mavericks. Tentei bisbilhotar o site de suporte da Apple, mas não vi ninguém com meu problema. Já vi muitas pessoas que aparentemente não sabem usar o SSH tão bem, então decidi tentar outra comunidade.
Primeiro, minha configuração está funcionando. Posso usar meu par de chaves e ssh nos hosts conforme necessário, com minhas credenciais sendo armazenadas em cache no agente. Consigo ver minhas credenciais em cache via "ssh-add -l", conforme o esperado. Sou solicitado a inserir minha senha em uma caixa de diálogo no estilo OS X, com uma caixa de seleção que diz "Lembrar senha no meu chaveiro". Normalmente, eu ignoro essa caixa de seleção, mas quando a marca, vejo minha chave armazenada no chaveiro. No entanto, essa chave armazenada no chaveiro aparentemente nunca é usada, pois eu tenho uma senha. Pelo menos é o que eu recolhi de várias coisas que li. Quando digito minha senha na caixa de diálogo e a chave é armazenada em cache no agente, eu me conecto com êxito, mas não antes de receber a mensagem "Falha ao salvar a senha nas chaves". Ver esta mensagem de erro foi o que me levou a investigar mais; Não gosto de receber erros sempre que me conecto.
As coisas ficam interessantes ao olhar para a página de manual SSH_CONFIG (5) . Existem duas opções para lidar com o chaveiro, específicas da Apple: AskPassGUI e KeychainIntegration. Você pode alterná-los em ~ / .ssh / config, e isso gera alguns resultados interessantes.
Definindo AskPassGUI como no, você não será mais solicitado com uma caixa de diálogo no estilo OS X, em vez de uma linha de texto de entrada no seu terminal. Nada demais. Mas se você fizer isso, o ssh-agent não armazenará em cache suas credenciais. Isso está claramente quebrado e frustrante, porque eu poderia viver facilmente com o prompt de texto se as credenciais fossem armazenadas em cache.
Definindo KeychainIntegration como no, o ssh gera um erro grave, da seguinte maneira:
~/.ssh/config: line 11: Bad configuration option: KeychainIntegration
~/.ssh/config: terminating, 1 bad configuration options
Minha pergunta, simplesmente, é a seguinte: Existe uma maneira de realmente desativar a Integração de Chaves do OS X para SSH?
Respostas:
Com base no código fonte da versão atual do SSH que é fornecida com o Mavericks (localizada aqui ), parece que a funcionalidade da opção de configuração
KeychainIntegration
ainda não foi implementada. Estou fazendo essa suposição com base no conteúdo de openssh / readconf.h , que não faz referência àKeychainIntegration
opção. No entanto, faz referência àaskpassgui
opção. A verificação da estrutura "keywords" nesse arquivo mostra realmente que akeychainintegration
opção não está presente (o que, por sua vez, implica que ooBadOption
código op (NULL) seria retornado).Outra pista que implica que a funcionalidade que você deseja não é implementada da maneira que a página de manual especifica é o arquivo: openssh / keychain.c . O código-fonte mostra realmente que o
defaults
sistema (ou seja, arquivos da Lista de propriedades) está sendo usado para armazenar configurações relacionadasKeychainIntegration
. Especificamente, as linhas dastore_in_keychain
função fazem referência a KeychainIntegration:Aqui está a
get_boolean_preference
função correspondente . Observe que ele está usandoCFPreferencesCopyAppValue
para obter um booleano a partir do identificador de aplicativo "org.openbsd.openssh":Isso pode implicar que você pode desativar a
KeychainIntegration
funcionalidade executando este comando padrão:defaults write org.openbsd.openssh KeychainIntegration -bool NO
ou para configurá-lo para todos os usuários:
sudo defaults write /Library/Preferences/org.openbsd.openssh KeychainIntegration -bool NO
fonte
KeychainIntegration
aNO
viadefaults
como você sugeriu.ssh
em seguida, se comporta como se eu tivesse definidoAskPassGUI
em~/.ssh/config
- sem credenciais são armazenadas em cache, e eu estou solicitado a fornecer a senha o tempo todo. Menos que útil. Ainda assim, acho que você respondeu à pergunta, e a resposta é simplesmente: "Ela pode ser desativada, mas não está totalmente implementada e você provavelmente não gostará dos resultados".