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

Что такое 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>
    
  7. Если не хотим каждый раз вводить пароль — в настройках “связки ключей” снимаем галочку об автоматической блокировке.