У меня есть некоторые проблемы с SSH KeychainIntegration в Mavericks OS X. Я пытался обойти сайт поддержки Apple, но не видел никого, кто бы мог решить мою проблему. Я видел много людей, которые, похоже, не умеют так хорошо использовать SSH, поэтому я решил попробовать другое сообщество.
Во-первых, моя конфигурация работает. Я могу использовать свою пару ключей и ssh для хостов по мере необходимости, причем мои учетные данные кэшируются в агенте. Я могу видеть свои кэшированные учетные данные через "ssh-add -l", как и ожидалось. Мне предлагается ввести мой пароль в диалоге в стиле OS X с флажком «Запомнить пароль в моей цепочке для ключей». Я обычно игнорирую этот флажок, но когда я его проверяю, я вижу, что мой ключ хранится в цепочке для ключей. Однако этот ключ, хранящийся в цепочке для ключей, по-видимому, никогда не используется, поскольку у меня есть пароль. По крайней мере, это то, что я почерпнул из разных вещей, которые я прочитал. Когда я ввожу свой пароль в диалоговое окно и ключ кешируется в агенте, я успешно подключаюсь, но не раньше, чем получаю сообщение «Ошибка сохранения пароля в связке ключей». Это сообщение об ошибке привело меня к дальнейшему расследованию; Я не люблю получать ошибки каждый раз, когда я подключаюсь.
Вещи становятся интересными при просмотре man- страницы SSH_CONFIG (5) . Существуют два варианта работы с цепочкой для ключей, специфичные для Apple: AskPassGUI и KeychainIntegration. Вы можете переключать их в ~ / .ssh / config, и это дает некоторые интересные результаты.
Если для AskPassGUI установлено значение no, вам больше не будет предложено диалоговое окно в стиле OS X, вместо этого будет введена текстовая строка в вашем терминале. Нет, важная персона. Но если вы сделаете это, то ssh-agent не будет кешировать ваши учетные данные. Это явно сломано, и разочаровывает, потому что я мог бы легко жить с текстовой подсказкой, если учетные данные были кэшированы.
Если для KeychainIntegration установлено значение no, ssh выдает сложную ошибку следующим образом:
~/.ssh/config: line 11: Bad configuration option: KeychainIntegration
~/.ssh/config: terminating, 1 bad configuration options
Мой вопрос, просто, заключается в следующем: есть ли способ на самом деле отключить OS X Keychain Integration для SSH?
Ответы:
Исходя из исходного кода текущей версии SSH, поставляемой вместе с Mavericks (находится здесь ), кажется, что функциональность опции конфигурации
KeychainIntegration
еще не реализована. Я делаю это предположение на основе содержимого openssh / readconf.h , которое не ссылается наKeychainIntegration
опцию. Это, однако, ссылается наaskpassgui
опцию. Проверка структуры «ключевые слова» в этом файле действительно показывает, чтоkeychainintegration
опция отсутствует (что, в свою очередь, означает, чтоoBadOption
будет возвращен код операции (NULL)).Еще одна подсказка, подразумевающая, что желаемая функциональность не реализована в том виде, в котором она указана на странице руководства, - это файл: openssh / keychain.c . Исходный код фактически показывает, что
defaults
система (т.е. файлы списка свойств) используется для хранения настроек, связанных сKeychainIntegration
. В частности, строки изstore_in_keychain
функции ссылаются на KeychainIntegration:Вот соответствующая
get_boolean_preference
функция. Обратите внимание, что он используетсяCFPreferencesCopyAppValue
для получения логического значения из идентификатора приложения «org.openbsd.openssh»:Это может означать, что вы можете отключить эту
KeychainIntegration
функцию для себя, выполнив команду по умолчанию:defaults write org.openbsd.openssh KeychainIntegration -bool NO
или установить его для всех пользователей:
sudo defaults write /Library/Preferences/org.openbsd.openssh KeychainIntegration -bool NO
источник
KeychainIntegration
наNO
через,defaults
как вы предложили.ssh
ведет себя так, как если бы я установитьAskPassGUI
в~/.ssh/config
- никакие учетные данные не кэшируются, и я запрошен ключевую фразу все время. Менее чем полезно. Тем не менее, я думаю, что вы ответили на вопрос, и ответ прост: «Его можно отключить, но он не полностью реализован, и вам, вероятно, не понравятся результаты».