.ssh / config: „Zła opcja konfiguracji: UseKeychain” w systemie Mac OS Sierra 10.12.6


91

Próbuję ustawić moją konfigurację ssh na komputerze Mac (Mac OS Sierra 10.12.6) w taki sposób, że przechowuje hasło dla mojego klucza ssh w pęku kluczy. Wcześniej mogłem to zrobić z

ssh-add -K ~/.ssh/id_rsa

Ale ostatnio wydaje się, że to już nie działa. Po tym artykule wydaje się, że nastąpiła zmiana w zachowaniu konfiguracji ssh w systemie Mac OS> 10.12.2, a zalecanym sposobem rozwiązania tego problemu jest dodanie UseKeychain yesdo konfiguracji ssh. Oto moja .ssh/configsekcja Host *:

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

Podczas próby połączenia się ssh z zagranicznym hostem otrzymuję następujący komunikat o błędzie:

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

Jakieś pomysły, dlaczego tak się dzieje i jak mogę to naprawić? Dzięki!

Odpowiedzi:


169

Spróbuj określić inną opcję, a mianowicie IgnoreUnknownjak poniżej:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Więcej informacji na ten temat znajdziesz tutaj .

Jeśli masz już IgnoreUnknownwartość, użyj wartości oddzielonych przecinkami

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
Pomiń plik konfiguracyjny ssh -F /dev/null ...tymczasowo, to działa dla mnie.
Itachi,

1
Dodawanie IgnoreUnknown UseKeychainnadal nie działa, więc UseKeychain yescałkowicie usuwam i działa. Nie jestem jednak pewien, czy to najlepsze podejście.
Hank Chan,

To rozwiązanie zadziałało, ale nie rozumiem, dlaczego ta zmiana nagle się zmieniła? Loguję się tylko na moje konto DigitalOcean.
anjanesh

Usunąłem wszystkie opcje i opuściłem Host i IdentityFile. Github mówi, żebym używał tych opcji, ale one też nie działają dla mnie. Dzięki.
Natus Drew

51

Przyjęta odpowiedź pomogła mi, ale nie rozwiązała całkowicie mojego problemu, ponieważ miałem wiele złych opcji. Oto przykład tego, jak może wyglądać, jeśli masz ten problem:

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

Chcę to zostawić tutaj: miałem również problem ze zdalnym połączeniem i okazało się, że problem. Problem został wygenerowany przy użyciu narzędzia Bitbucket's Sourcetree, które odinstalowałem, ale pozostawiło resztki uniemożliwiające zdalne połączenie
Connor,

Dzięki! Pracował na MacOS Mojave 10.14.6
Brendan

Dlaczego to działa? Miałem ten sam problem i ta odpowiedź go naprawiła, ale nadal nie wiem, dlaczego to zadziałało ani dlaczego miałem problem w pierwszej kolejności ..
Nishant Mehta

2

Właśnie zakomentowałem tę linię i scp / ssh znów zaczął dla mnie pracować.


1

Zamiast ssh-add wpisz „open .ssh / id_rsa” i dodaj go do pęku kluczy

Opcja UseKeychain nigdy nie wyglądała tak źle w mojej konfiguracji, ale na początku, przed każdym innym hostem, mam następujące

Host *
UseKeychain yes 

Host (...)

FYI, myślę, że to zła kolejność. Jeśli napiszesz to w ten sposób, Twoje *zasady zostaną zignorowane. man ssh_configmówi: „Ponieważ używana jest pierwsza uzyskana wartość każdego parametru, bardziej specyficzne dla hosta deklaracje powinny być podane na początku pliku, a ogólne wartości domyślne na końcu”.
Telemachus

FYI, mam to tak od prawie dziesięciu lat z dziesiątkami serwerów i nigdy nie miałem problemu. Każdego dnia korzystam z wielu serwerów. Jeśli jednak ktoś znajdzie prawdziwy problem z tą konfiguracją, może to będzie koniec.
Ricardo Mendes

0

To jest wielka -K spróbuj małą literą -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-addma -Kopcję przynajmniej na 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

Miałem ten sam problem i zdałem sobie sprawę, że kiedy zacząłem generować klucz, postępując zgodnie z instrukcjami. Pierwszy krok jest taki.

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

Nie zmieniłem adresu email ale oczywiście zapomniałem o tym: D. Więc pamiętaj, aby nie zapomnieć o tym kroku i wszystko będzie dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.