.ssh / config: "Schlechte Konfigurationsoption: UseKeychain" unter Mac OS Sierra 10.12.6


91

Ich versuche, meine SSH-Konfiguration auf dem Mac (Mac OS Sierra 10.12.6) so einzurichten, dass die Passphrase für meinen SSH-Schlüssel im Schlüsselbund gespeichert wird. Zuvor konnte ich das mit machen

ssh-add -K ~/.ssh/id_rsa

Aber in letzter Zeit scheint das nicht mehr zu funktionieren. Nach diesem Artikel scheint sich das Verhalten der SSH-Konfiguration unter Mac OS> 10.12.2 geändert zu haben. Die empfohlene Methode zur Behebung dieses Problems besteht darin UseKeychain yes, die SSH-Konfiguration zu ergänzen . Also hier ist mein .ssh/configAbschnitt Host *:

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

Beim Versuch, auf einen fremden Host zu ssh, wird folgende Fehlermeldung angezeigt:

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

Irgendwelche Ideen, warum dies passiert und wie ich es beheben kann? Vielen Dank!

Antworten:


170

Versuchen Sie, eine andere Option anzugeben, nämlich IgnoreUnknownwie folgt:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Weitere Informationen hierzu finden Sie hier .

Wenn Sie bereits einen IgnoreUnknownWert haben, verwenden Sie durch Kommas getrennte Werte

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
Umgehen Sie die Konfigurationsdatei ssh -F /dev/null ...vorübergehend über , es funktioniert für mich.
Itachi

1
Das Hinzufügen IgnoreUnknown UseKeychainfunktioniert bei mir immer noch nicht, daher entferne ich es UseKeychain yesvollständig und es funktioniert. Ich bin mir nicht sicher, ob dies der beste Ansatz ist.
Hank Chan

Diese Lösung hat bei mir funktioniert, aber ich verstehe nicht, warum sich diese Änderung plötzlich ändert. Ich melde mich nur bei meinem DigitalOcean-Konto an.
Anjanesh

Ich habe alle Optionen entfernt und den Host und die Identitätsdatei verlassen. Github sagt, er soll diese Optionen nutzen, aber sie funktionieren auch nicht für mich. Vielen Dank.
Natus Drew

51

Die akzeptierte Antwort half mir, löste mein Problem jedoch nicht vollständig, da ich mehrere Optionen hatte, die schlecht waren. Hier ist ein Beispiel, wie es aussehen könnte, wenn Sie dieses Problem haben:

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

Ich möchte dies nur hier belassen: Ich hatte auch Probleme mit der Remoteverbindung, und dies stellte sich als Problem heraus. Das Problem wurde mithilfe des Sourcetree-Tools von Bitbucket generiert, das ich deinstalliert habe, aber Reste hinterlassen habe, die eine Remoteverbindung verhinderten
Connor

Vielen Dank! Arbeitete an MacOS Mojave 10.14.6
brendan

Warum funktioniert das? Ich hatte das gleiche Problem und diese Antwort hat es behoben, aber ich weiß immer noch nicht, warum das funktioniert hat oder warum ich das Problem überhaupt hatte.
Nishant Mehta

2

Ich habe gerade die Zeile auskommentiert und scp / ssh hat wieder angefangen für mich zu arbeiten.


1

Anstelle von ssh-add geben Sie 'open .ssh / id_rsa' ein und fügen es dem Schlüsselbund hinzu

Die UseKeychain-Option erschien in meiner Konfiguration nie so schlecht, aber ich habe am Anfang vor jedem anderen Host Folgendes

Host *
UseKeychain yes 

Host (...)

Zu Ihrer Information, ich denke, das ist die falsche Reihenfolge. Wenn Sie es so schreiben, werden Ihre *Regeln ignoriert. man ssh_configsagt: "Da der erste erhaltene Wert für jeden Parameter verwendet wird, sollten am Anfang der Datei mehr hostspezifische Deklarationen und am Ende allgemeine Standardeinstellungen angegeben werden."
Telemachos

Zu Ihrer Information, ich habe es seit fast einem Jahrzehnt mit Dutzenden von Servern so und hatte nie ein Problem. Ich ssh jeden Tag zu so vielen Servern. Wenn jedoch jemand ein echtes Problem mit dieser Konfiguration findet, ist es vielleicht das Richtige.
Ricardo Mendes

0

Es ist die Hauptstadt -K versuchen Sie Kleinbuchstaben -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)

ssh-addhat -Kzumindest unter macOS eine option. 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

Ich hatte das gleiche Problem und stellte fest, dass beim Generieren des Schlüssels die Anweisungen befolgt wurden. Der erste Schritt ist dies.

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

Ich habe die E-Mail-Adresse nicht geändert, aber natürlich habe ich vergessen, das zu tun: D. Vergessen Sie diesen Schritt also nicht und alles wird gut.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.