.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.