.ssh / config: “Opção de configuração inválida: UseKeychain” no Mac OS Sierra 10.12.6


94

Estou tentando definir minha configuração de ssh no Mac (Mac OS Sierra 10.12.6) de forma que armazene a senha para minha chave de ssh nas chaves. Anteriormente, eu poderia fazer isso com

ssh-add -K ~/.ssh/id_rsa

Mas recentemente isso parece não funcionar mais. Após este artigo , parece haver uma mudança no comportamento da configuração do ssh no Mac OS> 10.12.2 e a maneira recomendada de corrigir esse problema é adicionar UseKeychain yesà sua configuração do ssh. Então, aqui está minha .ssh/configseção Host *:

Host *
  Port 22
  ServerAliveInterval 60
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa
  AddKeysToAgent yes
  UseKeychain yes

Ao tentar fazer o ssh para um host estrangeiro, recebo a seguinte mensagem de erro:

$ ssh my-host
/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain

Alguma ideia de por que isso acontece e como posso corrigir isso? Obrigado!

Respostas:


176

Tente especificar outra opção, IgnoreUnknowncomo a seguir:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Você pode encontrar mais informações sobre isso aqui .

Se você já tem um IgnoreUnknownvalor, use valores separados por vírgulas

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
Ignorar o arquivo de configuração ssh -F /dev/null ...temporariamente, ele funciona para mim.
Itachi

1
Adicionar IgnoreUnknown UseKeychainainda não funciona para mim, então eu removo UseKeychain yescompletamente e funciona. Não tenho certeza se essa é a melhor abordagem.
Hank Chan

Esta solução funcionou para mim, mas não entendo por que essa mudança de repente? Estou apenas acessando minha conta DigitalOcean.
anjanesh

Removi todas as opções e saí do Host e do IdentityFile. O Github diz para usar essas opções, mas elas também não funcionam para mim. Obrigado.
Natus Drew de

54

A resposta aceita me ajudou, mas não resolveu completamente meu problema porque eu tinha várias opções que eram ruins. Aqui está um exemplo de como seria se você tivesse esse problema:

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Só quero deixar isso aqui: eu também tive problemas para conectar remotamente e este acabou sendo o problema. O problema foi gerado usando a ferramenta Sourcetree do Bitbucket, que eu desinstalei, mas deixei vestígios que impediram a conexão remota
Connor

Obrigado! Trabalhou no MacOS mojave 10.14.6
brendan

Por que isso funciona? Eu tive o mesmo problema e esta resposta o corrigiu, mas ainda não sei por que funcionou ou por que tive o problema em primeiro lugar.
Nishant Mehta

2

Eu apenas comentei a linha e scp / ssh começou a trabalhar para mim novamente.


1

Em vez de ssh-add digite 'open .ssh / id_rsa' e adicione-o ao chaveiro

A opção UseKeychain nunca apareceu tão ruim na minha configuração, mas no início, antes de qualquer outro host, o seguinte

Host *
UseKeychain yes 

Host (...)

Para sua informação, acho que é a ordem errada. Se você escrever assim, suas *regras serão ignoradas. man ssh_configdiz, "Como o primeiro valor obtido para cada parâmetro é usado, mais declarações específicas do host devem ser fornecidas perto do início do arquivo e os padrões gerais no final."
Telêmaco

Para sua informação, eu tive isso por quase uma década com dezenas de servidores e nunca tive um problema. Eu ssh para muitos servidores todos os dias. No entanto, se alguém encontrar um problema na vida real com essa configuração, talvez seja isso.
Ricardo Mendes

0

É o -K maiúsculo tente -k minúsculo !!

ssh-add -k ~/.ssh/id_rsa

Enter passphrase for /Users/tom/.ssh/id_rsa:
Identity added: /Users/tom/.ssh/id_rsa (/Users/tom/.ssh/id_rsa)

ssh-addtem -Kopção pelo menos no macOS. man ssh-add:-K When adding identities, each passphrase will also be stored in the user's keychain. When removing identities with -d, each passphrase will be removed from it.
uasi

0

Eu tive o mesmo problema e percebi isso quando comecei a gerar a chave seguindo as instruções. O primeiro passo é este.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Não mudei o endereço de e-mail, mas é claro que me esqueci de fazer isso: D. Portanto, certifique-se de não esquecer essa etapa e tudo ficará bem.

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.