MacMacOS

Как добавить свой закрытый ключ SSH в Keychain, чтобы он автоматически был доступен для ssh?

В OSX нативный клиент ssh-add имеет специальный аргумент для сохранения ключевой фразы закрытого ключа в цепочке ключей OSX, что означает, что ваш обычный логин разблокирует его для использования с ssh. В OSX Sierra и более поздних версиях вам также необходимо настроить SSH, чтобы всегда использовать цепочку для ключей (см. шаг 2).

В качестве альтернативы вы можете использовать ключ без ключевой фразы, но если вы предпочитаете безопасность, это, безусловно, приемлемо с этим рабочим процессом.

Шаг 1 - храните ключ в Keychain

Просто сделайте это в консоле:

$ ssh-add -K ~/.ssh/[your-private-key]

Введите ключевую фразу-пароль, и вас больше не попросят.

(Если вы используете версию OSX, предшествующую Sierra, то все готово, шаг 2 не требуется)

Шаг 2 - настройте SSH, чтобы всегда использовать цепочку для ключей

  1. Убедитесь, что вы выполнили шаг 1 выше, чтобы сохранить ключ в Keychain.
  2. Если вы этого еще не сделали, создайте файл ~/.ssh/config. Другими словами, в каталоге .ssh вашего домашнего каталога создайте файл с именем config.
  3. В этот файл ~/.ssh/config добавьте следующие строки:
    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa

    Измените ~/.ssh/id_rsa на фактическое имя вашего личного ключа. Если у вас есть другие закрытые ключи в каталоге ~/.ssh/, также добавьте строку IdentityFile для каждого из них. Например, у меня есть одна дополнительная строка, которая читает IdentityFile ~/.ssh/id_ed25519 для второго закрытого ключа.

    UseKeychain yes - это ключевая часть, которая говорит SSH искать в ключевой цепочке OSX ключевую фразу.
  4. Вот и всё! В следующий раз, когда вы загрузите любое ssh-соединение, оно попробует указанные вами закрытые ключи и будет искать их парольную фразу в цепочке ключей OSX. Не требуя ввод пароля.
Loading...