.ssh / config: «Неверный вариант конфигурации: UseKeychain» в Mac OS Sierra 10.12.6.


94

Я пытаюсь настроить свою конфигурацию ssh на Mac (Mac OS Sierra 10.12.6) таким образом, чтобы она сохраняла парольную фразу для моего ключа ssh в связке ключей. Раньше я мог сделать это с помощью

ssh-add -K ~/.ssh/id_rsa

Но в последнее время, похоже, это больше не работает. После этой статьи, похоже, изменилось поведение конфигурации ssh в Mac OS> 10.12.2, и рекомендуемый способ исправить эту проблему - добавить UseKeychain yesв конфигурацию ssh. Итак, вот мой .ssh/configраздел Host *:

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

При попытке установить ssh на внешний хост я получаю следующее сообщение об ошибке:

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

Есть идеи, почему это происходит и как я могу это исправить? Благодаря!

Ответы:


176

Попробуйте указать другой вариант, а именно IgnoreUnknownкак ниже:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Вы можете найти больше информации об этом здесь .

Если у вас уже есть IgnoreUnknownзначение, используйте значения, разделенные запятыми.

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
ssh -F /dev/null ...Временно обойти конфигурационный файл через , у меня это работает.
Итачи

1
Добавление по- IgnoreUnknown UseKeychainпрежнему у меня не работает, поэтому я UseKeychain yesвообще удаляю, и оно работает. Не уверен, что это лучший подход.
Хэнк Чан

Это решение сработало для меня, но я не понимаю, почему это внезапно изменилось? Я только вхожу в свою учетную запись DigitalOcean.
Анжанеш

Я удалил все параметры и оставил Host и IdentityFile. Github говорит использовать эти параметры, но они мне тоже не подходят. Благодарю.
Natus Drew

54

Принятый ответ помог мне, но не решил полностью мою проблему, потому что у меня было несколько плохих вариантов. Вот пример того, как это может выглядеть, если у вас возникнет эта проблема:

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

Просто хочу оставить это здесь: у меня тоже были проблемы с удаленным подключением, и это оказалось проблемой. Проблема была вызвана использованием инструмента Bitbucket Sourcetree, который я удалил, но оставил остатки, препятствующие удаленному подключению
Коннор,

Благодаря! Работал на MacOS mojave 10.14.6
brendan

Почему это работает? У меня была та же проблема, и этот ответ исправил ее, но я до сих пор не знаю, почему это сработало и почему у меня вообще возникла проблема ...
Нишант Мета

2

Я просто закомментировал строку, и scp / ssh снова начал работать для меня.


1

Вместо ssh-add введите open .ssh / id_rsa и добавьте его в цепочку для ключей

Параметр UseKeychain никогда не выглядел так плохо в моей конфигурации, но вначале, перед любым другим хостом, у меня были следующие

Host *
UseKeychain yes 

Host (...)

К вашему сведению, я думаю, что это неправильный порядок. Если вы напишете так, ваши *правила будут проигнорированы. man ssh_configговорит: «Так как для каждого параметра используется первое полученное значение, в начале файла следует указать более специфичные для хоста объявления, а в конце - общие значения по умолчанию».
Телемах,

К вашему сведению, у меня это было почти десять лет с десятками серверов, и никогда не было проблем. Я каждый день использую ssh на таком количестве серверов. Однако, если кто-то обнаружит реальную проблему с этой конфигурацией, возможно, так и будет.
Рикардо Мендес

0

Это заглавная -K попробуйте строчную -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-addесть -Kопция, по крайней мере, на 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

У меня была такая же проблема, и я понял это, когда начал генерировать ключ, следуя инструкциям. Первый шаг таков.

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

Я не менял адрес электронной почты, но, конечно, я забыл об этом: D. Так что не забудьте этот шаг, и все будет хорошо.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.