Вы только что обновили macOS только для того, чтобы обнаружить, что когда вы отправляете или извлекаете изменения из GitHub, он запрашивает «Введите кодовую фразу для ключа '/Users/username/.ssh/id_ed25519':», где имя пользователя — ваше имя пользователя, а id_ed25519 — ваш закрытый ключ.
Разочарованы тем, что все руководства по сохранению ключевой фразы SSH в цепочке ключей Apple устарели или отсутствуют ключевые инструкции? Был там, сделал это — вот почему этот учебник существует.
Итак, как мне это исправить?
Как сохранить парольную фразу закрытого ключа SSH в цепочке ключей Apple
Откройте приложение Терминал в разделе Finder → Приложения → Утилиты → Терминал.
Если вы используете macOS Monterey или macOS Ventura, введите это в Терминал:
ssh-add --apple-use-keychain --apple-load-keychain ~/.ssh/id_ed25519
Где id_ed25519
— ваш закрытый ключ. Нажмите клавишу return, как только убедитесь, что используете правильный закрытый ключ.
В macOS Sierra или более ранней версии введите в Terminal следующее:
ssh-add -KA ~/.ssh/id_rsa
Опять же, id_rsa
должен быть вашим закрытым ключом. Убедитесь в этом и нажмите return.
Введите парольную фразу вашего закрытого ключа, и вас больше не будут спрашивать об этом, если вы будете следовать инструкциям в следующем разделе.
Как настроить SSH-агент, чтобы он всегда использовал вашу цепочку ключей Apple
Если ваша операционная система старше macOS Sierra, вам не нужно выполнять этот шаг.
К сожалению, macOS Sierra и более поздние версии устранили поведение сохранения ваших ключей между входами в систему, а обновление SSH теперь по умолчанию обходит цепочку ключей.
Выполните следующие действия, чтобы решить эту проблему:
Убедитесь, что вы правильно выполнили инструкции в разделе Как сохранить ключевую фразу SSH в цепочке ключей Apple выше. Просто попробуйте нажать или получить из GitHub и посмотреть, будет ли он по-прежнему запрашивать парольную фразу вашего закрытого ключа.
Вам снова понадобится Терминал для следующих команд. Так что откройте его снова, если вы его закрыли.
Убедитесь, что у вас есть файл ~/.ssh/config
. Вы можете проверить это, введя test -f ~/.ssh/config && echo "File exists."
в Терминал.
Если слова «Файл существует.» не возвращаются предыдущей командой, создайте файл с именем config
. Вы можете сделать это, набрав touch ~/.ssh/config
и нажав клавишу return.
Теперь введите nano -w ~/.ssh/config
в Терминал и убедитесь, что файл выглядит следующим образом:
Host *.github.com UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_ed25519
Измените ~/.ssh/id_ed25519
на фактическое имя файла вашего закрытого ключа. Если у вас есть другие закрытые ключи в вашем каталоге ~/.ssh
, добавьте строку IdentityFile
для каждого. Например, если у вас есть старый закрытый ключ, такой как id_rsa, добавьте IdentityFile ~/.ssh/id_rsa
.
Не забудьте часть UseKeychain yes
, поскольку она указывает SSH получить ключевую фразу-пароль из вашей цепочки для ключей Apple.
Если вы хотите сохранить ключевую фразу SSH для всех хостов (не только GitHub), измените строку Host *.github.com
на Host *
.
Теперь вы закроете и сохраните файл конфигурации SSH: нажмите control x, чтобы выйти, затем введите y и нажмите return, чтобы сохранить изменения.
Поздравляем!
Теперь ваши SSH-соединения будут использовать указанные закрытые ключи, а парольные фразы будут извлекаться из вашей цепочки ключей Apple. Попрощайтесь с необходимостью вводить парольную фразу закрытого ключа SSH каждый раз, когда вы взаимодействуете с GitHub.
Хотите нанять проверенных удаленных инженеров-программистов и других технических специалистов? Hyperion360 создает команды инженеров мирового класса для компаний из списка Fortune 500 и ведущих стартапов.