Сведения о парольных фразах ключа SSH
Вы можете получать доступ к данным в репозиториях и записывать их в GitHub AE с помощью SSH (протокол Secure Shell). При подключении через SSH проверка подлинности выполняется с помощью файла закрытого ключа на локальном компьютере. Дополнительные сведения см. в разделе Сведения о протоколе SSH.
При создании ключа SSH можно добавить парольную фразу для расширенной защиты ключа. При использовании ключа необходимо ввести парольную фразу. Если ключ имеет парольную фразу, и вы не хотите вводить парольную фразу при каждом использовании ключа, можно добавить ключ в агент SSH. Агент SSH управляет ключами SSH и запоминает парольную фразу.
Если у вас еще нет ключа SSH, необходимо создать новый ключ SSH для проверки подлинности. Если вы не уверены, есть ли у вас ключ SSH, можно проверить наличие существующих ключей. Дополнительные сведения см. в разделе Проверка наличия существующих ключей SSH.
Чтобы использовать аппаратный ключ безопасности для проверки подлинности в GitHub AE, необходимо создать новый ключ SSH для аппаратного ключа безопасности. При проверке подлинности с помощью пары ключей необходимо подключить аппаратный ключ безопасности к компьютеру. Дополнительные сведения см. в заметках о выпуске OpenSSH 8.2.
Создание нового ключа SSH
Вы можете создать новый ключ SSH на локальном компьютере. После создания ключа можно добавить открытый ключ в учетную запись GitHub AE, чтобы включить проверку подлинности для операций Git по протоколу SSH.
-
Откройте ТерминалТерминалGIT Bash.
-
Вставьте приведенный ниже текст, указав свой адрес электронной почты GitHub AE.
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
В результате будет создан новый ключ SSH, где в качестве метки будет использоваться указанный адрес электронной почты.
> Generating public/private ALGORITHM key pair.
При появлении запроса "Введите файл, в котором нужно сохранить ключ", вы можете нажать клавишу ВВОД , чтобы принять расположение файла по умолчанию. Обратите внимание, что если вы создали ключи SSH ранее, ssh-keygen может попросить вас переписать другой ключ. В этом случае рекомендуется создать ключ SSH с пользовательским именем. Для этого введите расположение файла по умолчанию и замените id_ssh_keyname именем пользовательского ключа.
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter]
> Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
> Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter]
-
В командной строке введите безопасную парольную фразу. Дополнительные сведения см. в разделе Работа с парольными фразами ключа SSH.
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
Добавление ключа SSH в ssh-agent
Перед добавлением нового ключа SSH в ssh-agent для управления ключами необходимо проверить наличие существующих ключей SSH и создать новый ключ SSH. При добавлении ключа SSH в агент используйте команду macOS ssh-add
по умолчанию, а не приложение, установленное macports, homebrew или другим внешним источником.
-
Запустите агент SSH в фоновом режиме.
$ eval "$(ssh-agent -s)" > Agent pid 59566
В зависимости от среды может потребоваться использовать другую команду. Например, вам может потребоваться доступ с правами root, для чего необходимо выполнить
sudo -s -H
перед запуском агента SSH. Может также потребоваться использоватьexec ssh-agent bash
илиexec ssh-agent zsh
для запуска агента SSH. -
Если вы используете macOS Sierra 10.12.2 или более поздней версии, необходимо внести изменения в файл
~/.ssh/config
, чтобы автоматически загружать ключи в ssh-agent и хранить парольные фразы в цепочке ключей.-
Сначала проверьте, существует ли файл
~/.ssh/config
в расположении по умолчанию.$ open ~/.ssh/config > The file /Users/YOU/.ssh/config does not exist.
-
Если файл не существует, создайте файл.
$ touch ~/.ssh/config
-
Откройте файл
~/.ssh/config
, а затем внесите в него изменения, чтобы он содержал следующие строки. Если файл ключа SSH имеет другое имя или путь, отличный от примера кода, измените имя файла или путь в соответствии с текущей настройкой.Host HOSTNAME AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ecdsa
Примечания.
-
Если вы решили не добавлять парольную фразу к ключу, следует опустить строку
UseKeychain
. -
Если появится сообщение об ошибке
Bad configuration option: usekeychain
, добавьте дополнительную строку в раздел конфигурацииHost *.HOSTNAME
.Host HOSTNAME IgnoreUnknown UseKeychain
-
-
-
Добавьте закрытый ключ SSH в ssh-agent и сохраните парольную фразу в цепочке ключей. Если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените id_rsa в команде на имя файла закрытого ключа.
$ ssh-add --apple-use-keychain ~/.ssh/id_rsa
Примечание: Параметр
--apple-use-keychain
сохраняет парольную фразу в связка ключей при добавлении ключа SSH в ssh-agent. Если вы решили не добавлять парольную фразу в ключ, выполните команду без параметра--apple-use-keychain
.Параметр
--apple-use-keychain
находится в стандартной версииssh-add
Apple . В версиях MacOS до Monterey (12.0)--apple-use-keychain
флаги и--apple-load-keychain
использовали синтаксис-K
и-A
соответственно.Если у вас не установлена стандартная версия
ssh-add
Apple, может возникнуть ошибка. Дополнительные сведения см. в разделе Error: ssh-add: illegal option -- K. -
Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.
Если у вас установлено приложение GitHub Desktop, его можно использовать для клонирования репозиториев, не прибегая к ключам SSH.
-
Убедитесь, что ssh-agent запущен. Можно воспользоваться инструкциями по автоматическому запуску агента в разделе Работа с парольными фразами ключа SSH или запустить его вручную:
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
-
Добавьте закрытый ключ SSH в ssh-agent. Если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените id_rsa в команде на имя файла закрытого ключа.
$ ssh-add ~/.ssh/id_rsa
-
Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.
-
Запустите агент SSH в фоновом режиме.
$ eval "$(ssh-agent -s)" > Agent pid 59566
В зависимости от среды может потребоваться использовать другую команду. Например, вам может потребоваться доступ с правами root, для чего необходимо выполнить
sudo -s -H
перед запуском агента SSH. Может также потребоваться использоватьexec ssh-agent bash
илиexec ssh-agent zsh
для запуска агента SSH. -
Добавьте закрытый ключ SSH в ssh-agent. Если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените id_rsa в команде на имя файла закрытого ключа.
$ ssh-add ~/.ssh/id_rsa
-
Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.
Создание нового ключа SSH для аппаратного ключа безопасности
В macOS или Linux перед созданием нового ключа SSH может потребоваться обновить клиент SSH или установить новый клиент SSH. Дополнительные сведения см. в разделе Ошибка: неизвестный тип ключа.
-
Вставьте аппаратный ключ безопасности в компьютер.
-
Откройте ТерминалТерминалGIT Bash.
-
Вставьте приведенный ниже текст, указав адрес электронной почты своей учетной записи GitHub AE.
$ ssh-keygen -t ecdsa-sk -C "YOUR_EMAIL"
-
При появлении соответствующего запроса нажмите кнопку на аппаратном ключе безопасности.
-
При появлении запроса "Введите файл, в который нужно сохранить клавишу", нажмите клавишу ВВОД, чтобы принять расположение файла по умолчанию.
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ecdsa_sk): [Press enter]
> Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ecdsa_sk):[Press enter]
> Enter a file in which to save the key (/home/YOU/.ssh/id_ecdsa_sk):[Press enter]
-
При появлении соответствующего запроса введите парольную фразу и нажмите клавишу ВВОД.
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
-
Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.