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

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

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

Сведения о парольных фразах ключа SSH

Вы можете получать доступ к данным в репозиториях и записывать их в экземпляр GitHub Enterprise Server с помощью SSH (протокол Secure Shell). При подключении через SSH проверка подлинности выполняется с помощью файла закрытого ключа на локальном компьютере. Дополнительные сведения см. в разделе Сведения о протоколе SSH.

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

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

Чтобы использовать аппаратный ключ безопасности для проверки подлинности в GitHub Enterprise Server, необходимо создать новый ключ SSH для аппаратного ключа безопасности. При проверке подлинности с помощью пары ключей необходимо подключить аппаратный ключ безопасности к компьютеру. Дополнительные сведения см. в заметках о выпуске OpenSSH 8.2.

Создание нового ключа SSH

Вы можете создать новый ключ SSH на локальном компьютере. После создания ключа можно добавить открытый ключ в учетную запись экземпляр GitHub Enterprise Server, чтобы включить проверку подлинности для операций Git по протоколу SSH.

Если вы являетесь администратором сайта экземпляр GitHub Enterprise Server, вы можете использовать тот же ключ, чтобы предоставить себе административный доступ по протоколу SSH к экземпляру. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

Примечание. По умолчанию, начиная с GitHub Enterprise Server версии 3.6 и более поздних версий, по состоянию на 0:00 UTC 1 августа 2022 г. подключение по протоколу SSH, удовлетворяющее обоим следующим условиям, будет завершено сбоем.


  • Ключ RSA был добавлен в учетную запись пользователя экземпляр GitHub Enterprise Server после полуночи (UTC) 1 августа 2022 г.
  • Клиент SSH подписывает попытку подключения с помощью хэш-функции SHA-1.

GitHub Enterprise Server версии 3.6 и более поздних версий также не поддерживает SSH-подключения, использующие шифры DSA, HMAC-SHA-1 или CBC. Ключи RSA SSH, отправленные до даты прекращения, могут по-прежнему проходить проверку подлинности с помощью хэш-функции SHA-1, пока ключ остается действительным. Дополнительные сведения о поиске используемой версии GitHub Enterprise Server см. в разделе Сведения о версиях документации GitHub.

Администратор сайта может настроить дату прекращения подключений с помощью RSA-SHA-1 и заблокировать все подключения с помощью RSA-SHA-1. Для получения дополнительных сведений обратитесь к администратору сайта или ознакомьтесь с разделом Настройка SSH-подключений к экземпляру.

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

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

    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    Примечание. Если вы используете устаревшую систему, которая не поддерживает алгоритм Ed25519, используйте следующую команду:

    $ 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_ed25519
      

      Примечания.

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

      • Если появится сообщение об ошибке Bad configuration option: usekeychain, добавьте дополнительную строку в раздел конфигурации Host *.HOSTNAME.

        Host HOSTNAME
          IgnoreUnknown UseKeychain
        
  3. Добавьте закрытый ключ SSH в ssh-agent и сохраните парольную фразу в цепочке ключей. Если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла закрытого ключа.

    $ ssh-add --apple-use-keychain ~/.ssh/id_ed25519

    Примечание: Параметр --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_ed25519 в команде на имя файла закрытого ключа.

    $ ssh-add ~/.ssh/id_ed25519

  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_ed25519 в команде на имя файла закрытого ключа.

    $ ssh-add ~/.ssh/id_ed25519

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

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

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

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

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

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

    $ ssh-keygen -t ed25519-sk -C "YOUR_EMAIL"

    Примечание. Если команда завершается ошибкой invalid format или feature not supported,, возможно, используется аппаратный ключ безопасности, который не поддерживает алгоритм Ed25519. Введите приведенную ниже команду.

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

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

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
    > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ed25519_sk):[Press enter]
    > Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_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.