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

Управление несколькими учетными записями

Если вы используете одну рабочую станцию для участия в проектах для нескольких учетных записей в GitHub.com, вы можете изменить конфигурацию Git, чтобы упростить процесс внесения изменений.

Сведения об управлении несколькими учетными записями

В некоторых случаях может потребоваться использовать несколько учетных записей в GitHub.com. Например, у вас может быть личная учетная запись для участия в разработке программного обеспечения с открытым кодом, а также учетная запись, созданная работодателем, для основной работы.

Вы не можете использовать управляемая учетная запись пользователя для участия в общедоступных проектах в GitHub.com, поэтому вы должны вносить свой вклад в эти ресурсы с помощью личной учетной записи. Дополнительные сведения см. в разделе Сведения о Enterprise Managed Users в документации по GitHub Enterprise Cloud.

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

Предупреждение. Будьте осторожны при использовании одной рабочей станции для работы в разных учетных записях. Управление двумя или более учетными записями повышает вероятность случайной утечки внутреннего кода.

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

Работа в двух учетных записях с помощью HTTPS и SSH

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

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

URL-адреса HTTPS или SSH для клонирования репозитория можно найти на GitHub. Дополнительные сведения см. в разделе Клонирование репозитория.

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

Участие в работе нескольких учетных записей с использованием HTTPS и personal access tokens

Кроме того, если вы хотите использовать протокол HTTPS для обеих учетных записей, можно использовать разные personal access tokens для каждой учетной записи, настроив Git для хранения разных учетных данных для каждого репозитория.

  1. Откройте терминал. 1. Чтобы подтвердить использование диспетчера учетных данных, введите следующую команду и запишите выходные данные.

    Shell
    git config --get credential.helper
    ``` 1. Если выходные данные подтверждают использование диспетчера учетных данных, очистите сохраненные учетные данные для диспетчера учетных данных. - Если выходные данные не содержат имя диспетчера учетных данных, диспетчер учетных данных не настроен, и вы можете перейти к следующему шагу.
    - Если вы получили выходные данные `osxkeychain`, вы используете цепочку ключей macOS. Чтобы очистить учетные данные, введите следующую команду.
    
      ```shell{:copy}
      git credential-osxkeychain erase https://github.com
    • Если вы получили выходные данные manager-core, используется диспетчер учетных данных Git. Чтобы очистить учетные данные, выполните следующую команду.

      Shell
      git credential-manager reject https://github.com
      ``` 1. Чтобы настроить Git для кэширования учетных данных для каждого локального каталога, в котором вы клонируете репозиторий, введите следующую команду.
    Shell
    git config --global credential.useHttpPath true
    ``` 1. Для каждой учетной записи создайте выделенный personal access token (classic) с `repo` областью действия.  Или для каждой учетной записи и для каждой организации, членом которых вы являетесь, создайте fine-grained personal access token, который может получать доступ к нужным репозиториям и имеет разрешения на чтение и запись содержимого репозитория.  Дополнительные сведения см. в разделе [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). 1. При первом использовании Git для клонирования репозитория или доступа к данным в репозитории, который вы уже клонировали, Git запросит учетные данные. Укажите personal access token для учетной записи с доступом к репозиторию.
    
    Git будет кэшировать personal access token для каталога, в который вы находитесь, и вы сможете получать доступ к данным репозитория и записывать их в GitHub.com с помощью правильной учетной записи.
  1. Откройте Git Bash.

  2. Чтобы подтвердить использование диспетчера учетных данных, введите следующую команду и запишите выходные данные.

    Shell
    git config --get credential.helper
    ``` 1. Если выходные данные подтверждают использование диспетчера учетных данных, очистите сохраненные учетные данные для диспетчера учетных данных. - Если выходные данные не содержат имя диспетчера учетных данных, диспетчер учетных данных не настроен, и вы можете перейти к следующему шагу. - Если вы получили выходные данные `manager-core`, используется диспетчер учетных данных Git. Чтобы очистить учетные данные, выполните следующую команду.
    
     ```shell{:copy}
     git credential-manager reject https://github.com
    • Если вы получили выходные данные wincred, используется диспетчер учетных данных Windows. Чтобы очистить учетные данные, введите следующую команду.

      Shell
      cmdkey /delete:LegacyGeneric:target=git:https://github.com
  3. Чтобы настроить Git для кэширования учетных данных для каждого локального каталога, в котором вы клонируете репозиторий, введите следующую команду.

    Shell
    git config --global credential.useHttpPath true
    ``` 1. Для каждой учетной записи создайте выделенный personal access token (classic) с `repo` областью действия.  Или для каждой учетной записи и для каждой организации, членом которых вы являетесь, создайте fine-grained personal access token, который может получать доступ к нужным репозиториям и имеет разрешения на чтение и запись содержимого репозитория.  Дополнительные сведения см. в разделе [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). 1. При первом использовании Git для клонирования репозитория или доступа к данным в репозитории, который вы уже клонировали, Git запросит учетные данные. Укажите personal access token для учетной записи с доступом к репозиторию.
    
    Git будет кэшировать personal access token для каталога, в который вы находитесь, и вы сможете получать доступ к данным репозитория и записывать их в GitHub.com с помощью правильной учетной записи.
  1. Откройте терминал. 1. Чтобы подтвердить использование диспетчера учетных данных, введите следующую команду и запишите выходные данные.

    Shell
    git config --get credential.helper
    ``` 1. Если выходные данные подтверждают использование диспетчера учетных данных, очистите сохраненные учетные данные для диспетчера учетных данных. - Если выходные данные не содержат имя диспетчера учетных данных, диспетчер учетных данных не настроен, и вы можете перейти к следующему шагу. - Если вы получили выходные данные `manager-core`, используется диспетчер учетных данных Git. Чтобы очистить учетные данные, выполните следующую команду.
    
     ```shell{:copy}
     git credential-manager reject https://github.com
     ``` 1. Чтобы настроить Git для кэширования учетных данных для каждого локального каталога, в котором вы клонируете репозиторий, введите следующую команду.
    
    ```shell{:copy}
    git config --global credential.useHttpPath true
    ``` 1. Для каждой учетной записи создайте выделенный personal access token (classic) с `repo` областью действия.  Или для каждой учетной записи и для каждой организации, членом которых вы являетесь, создайте fine-grained personal access token, который может получать доступ к нужным репозиториям и имеет разрешения на чтение и запись содержимого репозитория.  Дополнительные сведения см. в разделе [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). 1. При первом использовании Git для клонирования репозитория или доступа к данным в репозитории, который вы уже клонировали, Git запросит учетные данные. Укажите personal access token для учетной записи с доступом к репозиторию.
    
    Git будет кэшировать personal access token для каталога, в который вы находитесь, и вы сможете получать доступ к данным репозитория и записывать их в GitHub.com с помощью правильной учетной записи.

Работа в нескольких учетных записях с использованием SSH и GIT_SSH_COMMAND

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

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

  1. Определите полное имя репозитория с владельцем, используя команду, например git config --get remote.origin.url.
  2. Выберите правильный ключ SSH для проверки подлинности.
  3. Измените GIT_SSH_COMMAND соответствующим образом. Дополнительные сведения о GIT_SSH_COMMAND см. в разделе Переменные среды в документации по Git.

Например, следующая команда задает GIT_SSH_COMMAND переменную среды, чтобы указать команду SSH, которая использует файл закрытого ключа в path/TO/KEY/FILE для проверки подлинности для клонирования репозитория с именем OWNER/REPOSITORY в GitHub.com.

GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY