У OSX у рідного ssh-add
клієнта є спеціальний аргумент для збереження парольної фрази приватного ключа у брелоку OSX, що означає, що ваш звичайний логін розблокує його для використання з ssh. На OSX Sierra та пізніших версіях вам також потрібно налаштувати SSH так, щоб завжди використовувати брелок (див. Крок 2 нижче).
Крім того, ви можете використовувати ключ без парольної фрази, але якщо ви віддаєте перевагу безпеку, яка, безумовно, прийнятна для цього робочого процесу.
Крок 1 - Зберігайте ключ у брелок
Просто зробіть це один раз:
ssh-add -K ~/.ssh/[your-private-key]
Введіть свою ключову парольну фразу, і вас більше не запитають.
(Якщо ви користуєтесь попередньою версією OSX-версії OSX, завершено, крок 2 не потрібно.)
Крок 2 - Налаштування SSH завжди використовувати брелок
Здається, що OSX Sierra усунула зручну поведінку зберігання ваших ключів між логінами, а оновлення до ssh більше не використовує брелок за замовчуванням. Через це вам буде запропоновано ввести пароль для ключа після оновлення та знову після кожного перезавантаження.
Рішення досить просте і викладено в цьому коментарі до github . Ось як ви його налаштували:
Переконайтесь, що ви виконали вищевказаний крок 1, щоб зберігати ключ у брелок.
Якщо ви ще цього не зробили, створіть ~/.ssh/config
файл. Іншими словами, в .ssh
каталозі вашого домашнього редактора зробіть файл з назвою config
.
У цей .ssh/config
файл додайте наступні рядки:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
Змініть ~/.ssh/id_rsa
фактичне ім’я вашого приватного ключа. Якщо у вашому ~.ssh
каталозі є інші приватні ключі , також додайте IdentityFile
рядок для кожного з них. Наприклад, у мене є один додатковий рядок, який читається IdentityFile ~/.ssh/id_ed25519
для 2-го приватного ключа.
Це UseKeychain yes
ключова частина, яка повідомляє SSH шукати у вашому брелоку OSX ключову фразу.
Це воно! Наступного разу, коли ви завантажуєте будь-яке ssh-з'єднання, воно спробує вказані вами приватні ключі, і він шукатиме їхню парольну фразу в брелоку OSX. Не потрібно вводити парольну фразу.