Хинт про работу с ключами SSH на mac os x

October 11, 2017 - 2 minute read -
macOS manuel ssh

Что такое SSH и для чего они нужны лучше чем уже сказано на Хабре рассказать не смогу. Потому лишь добавлю что внезапно а в версии 10.12.2 macOS обновилась библиотека OpenSSH1 и логика работы с ключами. Что конечно же все сломало — ssh-ключи не загружаются после загрузки системы. Что очень неудобно при работе Sourcetree, Github, хостингами да и вообще. Так что подготовил инструкцию больше для себя как исправить включая все шаги.

  1. Создаем ключ если его еще нет. Инструкций с картинками в сети полно, например, на Github.
  2. Добавляем его passphrase в системный Keychain ssh-add -K FULL_PATH_to_PrivateKeyFile
  3. Добавляем его в ssh-agent ssh-add -A
  4. Добавляем файл config где обязательно указываем следующие параметры: Host * UseKeychain yes AddKeysToAgent yes

  5. Теперь нужно команду ssh-add -A автоматически на старте системы. Первый вариант один через скрипт в ~/.bash_profile: ssh-add -A 2>/dev/null;

  6. другой через файл загрузки в ~/Library/LaunchAgents/2. Содержание файла с расширением .plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>ssh-add-a</string>
<key>ProgramArguments</key>
<array>
    <string>ssh-add</string>
    <string>-A</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
  1. Если не хотим каждый раз вводить пароль — в настройках “связки ключей” снимаем галочку об автоматической блокировке.

  • Technical Note TN2449OpenSSH updates in macOS 10.12.2 ↩︎
  • Методы автозагрузки приложений в Mac OS X. LaunchAgents и LaunchDaemons. ↩︎
  • </fn></footnotes>