.ssh / config: "Opción de configuración incorrecta: UseKeychain" en Mac OS Sierra 10.12.6

91

Estoy tratando de configurar mi ssh config en Mac (Mac OS Sierra 10.12.6) de tal manera que almacene la frase de contraseña para mi clave ssh en el llavero. Anteriormente podía hacer eso con

ssh-add -K ~/.ssh/id_rsa

Pero recientemente esto parece que ya no funciona. Después de este artículo , parece haber un cambio en el comportamiento de la configuración de ssh en Mac OS> 10.12.2 y la forma recomendada de solucionar este problema es agregar UseKeychain yesa su configuración de ssh. Así que aquí está mi .ssh/configsección Host *:

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

Cuando intento enviar un ssh a un host externo, aparece el siguiente mensaje de error:

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

¿Alguna idea de por qué sucede esto y cómo puedo solucionarlo? ¡Gracias!

Michael Lihs
fuente

Respuestas:

169

Intente especificar otra opción, a saber, IgnoreUnknowncomo a continuación:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Puedes encontrar más información sobre esto aquí .

Si ya tiene un IgnoreUnknownvalor, use valores separados por comas

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
mic4ael
fuente
2
Omita el archivo de configuración a través de ssh -F /dev/null ...temporalmente, funciona para mí.
Itachi
1
Agregar IgnoreUnknown UseKeychaintodavía no funciona para mí, así que elimino por UseKeychain yescompleto y funciona. Sin embargo, no estoy seguro de que este sea el mejor enfoque.
Hank Chan
Esta solución funcionó para mí, pero no entiendo por qué este cambio de repente. Solo estoy ingresando a mi cuenta de DigitalOcean.
anjanesh
Eliminé todas las opciones y dejé el Host e IdentityFile. Github dice que use esas opciones, pero tampoco me funcionan. Gracias.
Natus Drew
51

La respuesta aceptada me ayudó pero no resolvió completamente mi problema porque tenía múltiples opciones que eran malas. A continuación, se muestra un ejemplo de cómo podría verse si tiene este problema:

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
Dallas Caley
fuente
Solo quiero dejar esto aquí: también tuve problemas para conectarme de forma remota y este resultó ser el problema. El problema se generó al usar la herramienta Sourcetree de Bitbucket, que desinstalé pero dejó restos que impidieron la conexión remota
Connor
¡Gracias! Trabajado en MacOS Mojave 10.14.6
Brendan
¿Por qué funciona esto? Tuve el mismo problema y esta respuesta lo solucionó, pero todavía no sé por qué funcionó o por qué tuve el problema en primer lugar ..
Nishant Mehta
2

Acabo de comentar la línea y scp / ssh comenzó a trabajar para mí nuevamente.

Bryan
fuente
1

En lugar de ssh-add, escriba 'open .ssh / id_rsa' y agréguelo al llavero

La opción UseKeychain nunca apareció tan mal en mi configuración, pero al principio, antes de cualquier otro host, lo siguiente

Host *
UseKeychain yes 

Host (...)
Ricardo Mendes
fuente
FYI, creo que ese es el orden incorrecto. Si lo escribe de esa manera, sus *reglas serán ignoradas. man ssh_configdice: "Dado que se usa el primer valor obtenido para cada parámetro, se deben dar más declaraciones específicas de host cerca del comienzo del archivo y valores predeterminados generales al final".
Telemachus
Para su información, lo he tenido así durante casi una década con docenas de servidores y nunca tuve un problema. Me conecto a tantos servidores todos los días. Sin embargo, si alguien encuentra un problema de la vida real con esa configuración, tal vez sea ese.
Ricardo Mendes
0

Es la mayúscula -K prueba con minúsculas -k !!

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)
Tomachi
fuente
ssh-addtiene la -Kopción al menos en 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

Tuve el mismo problema y me di cuenta de que cuando comencé a generar la clave siguiendo las instrucciones. El primer paso es este.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

No cambié la dirección de correo electrónico pero, por supuesto, me olvidé de hacerlo: D. Así que asegúrese de no olvidar ese paso y todo estará bien.

Mohammed Ramadán
fuente