Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.
В настоящее время GitHub AE находится в ограниченном выпуске.

Создание нового ключа SSH и его добавление в ssh-agent

После проверки наличия существующих ключей SSH можно создать ключ SSH для проверки подлинности, а затем добавить его к агенту SSH.

Сведения о парольных фразах ключа 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.

  1. Откройте ТерминалТерминалGIT Bash.

  2. Вставьте приведенный ниже текст, указав свой адрес электронной почты 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]
  3. В командной строке введите безопасную парольную фразу. Дополнительные сведения см. в разделе Работа с парольными фразами ключа 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 или другим внешним источником.

  1. Запустите агент SSH в фоновом режиме.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    В зависимости от среды может потребоваться использовать другую команду. Например, вам может потребоваться доступ с правами root, для чего необходимо выполнить sudo -s -H перед запуском агента SSH. Может также потребоваться использовать exec ssh-agent bashили exec ssh-agent zsh для запуска агента SSH.

  2. Если вы используете 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
        
  3. Добавьте закрытый ключ 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-addApple . В версиях MacOS до Monterey (12.0) --apple-use-keychain флаги и --apple-load-keychain использовали синтаксис -K и -Aсоответственно.

    Если у вас не установлена стандартная версия ssh-add Apple, может возникнуть ошибка. Дополнительные сведения см. в разделе Error: ssh-add: illegal option -- K.

  4. Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.

Если у вас установлено приложение GitHub Desktop, его можно использовать для клонирования репозиториев, не прибегая к ключам SSH.

  1. Убедитесь, что ssh-agent запущен. Можно воспользоваться инструкциями по автоматическому запуску агента в разделе Работа с парольными фразами ключа SSH или запустить его вручную:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. Добавьте закрытый ключ SSH в ssh-agent. Если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените id_rsa в команде на имя файла закрытого ключа.

    $ ssh-add ~/.ssh/id_rsa

  3. Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.

  1. Запустите агент SSH в фоновом режиме.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    В зависимости от среды может потребоваться использовать другую команду. Например, вам может потребоваться доступ с правами root, для чего необходимо выполнить sudo -s -H перед запуском агента SSH. Может также потребоваться использовать exec ssh-agent bashили exec ssh-agent zsh для запуска агента SSH.

  2. Добавьте закрытый ключ SSH в ssh-agent. Если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените id_rsa в команде на имя файла закрытого ключа.

    $ ssh-add ~/.ssh/id_rsa

  3. Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.

Создание нового ключа SSH для аппаратного ключа безопасности

В macOS или Linux перед созданием нового ключа SSH может потребоваться обновить клиент SSH или установить новый клиент SSH. Дополнительные сведения см. в разделе Ошибка: неизвестный тип ключа.

  1. Вставьте аппаратный ключ безопасности в компьютер.

  2. Откройте ТерминалТерминалGIT Bash.

  3. Вставьте приведенный ниже текст, указав адрес электронной почты своей учетной записи GitHub AE.

    $ ssh-keygen -t ecdsa-sk -C "YOUR_EMAIL"
  4. При появлении соответствующего запроса нажмите кнопку на аппаратном ключе безопасности.

  5. При появлении запроса "Введите файл, в который нужно сохранить клавишу", нажмите клавишу ВВОД, чтобы принять расположение файла по умолчанию.

    > 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]
  6. При появлении соответствующего запроса введите парольную фразу и нажмите клавишу ВВОД.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
  7. Добавьте открытый ключ SSH в учетную запись в GitHub. Дополнительные сведения см. в разделе Добавление нового ключа SSH в учетную запись GitHub.