Skip to main content

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

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

Platform navigation

Участие в нескольких учетных записях с помощью HTTPS и personal access tokens

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

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

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

    Shell
    git config --get credential.helper
    
  3. Если выходные данные подтверждают использование диспетчера учетных данных, очистите сохраненные учетные данные для диспетчера учетных данных.

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

      $ git credential-osxkeychain erase
      host=github.com
      protocol=https
      > [Press Return]
      >
      
    • Если выходные данные ( manager или manager-core в предыдущих версиях) используют диспетчер учетных данных Git. Чтобы очистить учетные данные, выполните следующую команду.

      Shell
      echo "protocol=https\nhost=github.com" | git credential-manager erase
      
  1. Чтобы настроить Git для кэширования учетных данных для полной удаленный URL-адрес каждого репозитория, к который вы обращаетесь на GitHub, введите следующую команду.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. Для каждой учетной записи создайте выделенные данные personal access token (classic) с repo областью. Кроме того, для каждой учетной записи и для каждой организации, в которую вы входите, создайте fine-grained personal access token, которая может получить доступ к нужным репозиториям и имеет разрешения на чтение и запись для содержимого репозитория. Дополнительные сведения см. в разделе Управление личными маркерами доступа.

  3. Когда вы впервые используете Git для клонирования репозитория или доступа к данным в клоне, Git запрашивает учетные данные. Укажите personal access token для учетной записи с доступом к репозиторию.

    Git кэширует данные personal access token на основе полной удаленный URL-адрес репозитория, и вы сможете получать доступ к данным репозитория и записывать их на GitHub.com с помощью правильной учетной записи.

  1. Откройте Git Bash.

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

    Shell
    git config --get credential.helper
    
  3. Если выходные данные подтверждают использование диспетчера учетных данных, очистите сохраненные учетные данные для диспетчера учетных данных.

  • Если выходные данные не содержат имя диспетчера учетных данных, диспетчер учетных данных не настроен, и вы можете перейти к следующему шагу.

  • Если выходные данные ( manager или manager-core в предыдущих версиях) используют диспетчер учетных данных Git. Чтобы очистить учетные данные, выполните следующую команду.

    Shell
    echo "protocol=https`nhost=github.com" | git credential-manager erase
    
    • Если результат wincred, вы используете Windows Credential Manager. Чтобы очистить учетные данные, введите следующую команду.

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

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. Для каждой учетной записи создайте выделенные данные personal access token (classic) с repo областью. Кроме того, для каждой учетной записи и для каждой организации, в которую вы входите, создайте fine-grained personal access token, которая может получить доступ к нужным репозиториям и имеет разрешения на чтение и запись для содержимого репозитория. Дополнительные сведения см. в разделе Управление личными маркерами доступа.

  3. Когда вы впервые используете Git для клонирования репозитория или доступа к данным в клоне, Git запрашивает учетные данные. Укажите personal access token для учетной записи с доступом к репозиторию.

    Git кэширует данные personal access token на основе полной удаленный URL-адрес репозитория, и вы сможете получать доступ к данным репозитория и записывать их на GitHub.com с помощью правильной учетной записи.

данных повторного использования.git.open-terminal %} 1. Чтобы подтвердить использование диспетчера учетных данных, введите следующую команду и просмотрите ее вывод.

Shell
git config --get credential.helper
  1. Если выходные данные подтверждают использование диспетчера учетных данных, очистите сохраненные учетные данные для диспетчера учетных данных.
  • Если выходные данные не содержат имя диспетчера учетных данных, диспетчер учетных данных не настроен, и вы можете перейти к следующему шагу.

  • Если выходные данные ( manager или manager-core в предыдущих версиях) используют диспетчер учетных данных Git. Чтобы очистить учетные данные, выполните следующую команду.

    Shell
    echo "protocol=https\nhost=github.com" | git credential-manager erase
    
  1. Чтобы настроить Git для кэширования учетных данных для полной удаленный URL-адрес каждого репозитория, к который вы обращаетесь на GitHub, введите следующую команду.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. Для каждой учетной записи создайте выделенные данные personal access token (classic) с repo областью. Кроме того, для каждой учетной записи и для каждой организации, в которую вы входите, создайте fine-grained personal access token, которая может получить доступ к нужным репозиториям и имеет разрешения на чтение и запись для содержимого репозитория. Дополнительные сведения см. в разделе Управление личными маркерами доступа.

  3. Когда вы впервые используете Git для клонирования репозитория или доступа к данным в клоне, Git запрашивает учетные данные. Укажите personal access token для учетной записи с доступом к репозиторию.

    Git кэширует данные personal access token на основе полной удаленный URL-адрес репозитория, и вы сможете получать доступ к данным репозитория и записывать их на 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.

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

Внесение вклада в несколько аккаунтов с использованием SSH и нескольких ключей

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

Предупреждение

Вы не можете использовать один и тот же SSH-ключ для внесения вклада в оба репозитории внутри вашего организация с управляемыми пользователями и вне предприятия.

  1. Сгенерируйте другой SSH-ключ для репозиториев в вашем организация с управляемыми пользователями. См . раздел AUTOTITLE. При сохранении ключа дайте ему другое имя файла от существующего ключа (например, добавьте -emu к рекомендуемому именю файла).

  2. Добавьте новый ssh-ключ к вашему управляемая учетная запись пользователя. См. раздел AUTOTITLE

  3. Настройте свой SSH Config File ~/.ssh/config так, чтобы он использовал разные клавиши. Например, если ваш личный SSH-ключ, ~/.ssh/id_ed25519 а корпоративный с управляемыми пользователями SSH ключ — ~/.ssh/id_ed25519-emu

    Text
    Host github.com
        IdentityFile ~/.ssh/id_ed25519
        IdentitiesOnly yes
    
    Host github-emu.com
        Hostname github.com
        IdentityFile ~/.ssh/id_ed25519-emu
        IdentitiesOnly yes
    

    Примечание.

    Линия IdentitiesOnly гарантирует, что если ssh-агент загрузил несколько ключей, SSH использует правильный ключ при подключении.

  4. Проверьте конфигурацию SSH, выполнив следующую команду подключения с помощью SSH-ключа, связанного с вашим личным аккаунтом — см. Тестирование подключения по протоколу SSH для подробностей

    Shell
    ssh -T git@github.com
    

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

    Shell
    ssh -T git@github-emu.com
    
  5. Скажите git использовать правильный ключ при скачивании или загрузке репозитория в организация с управляемыми пользователями. Чтобы перечислить организации в вашем корпоративный с управляемыми пользователями, 1. В правом верхнем углу GitHub, щелкните рисунок профиля, а затем выберите октикона "организация" aria-hidden="true" aria-label="organization" %} Ваши организации.

    1. Для каждой перечисленной организации скажите git использовать github-emu.com хост.

    Например, если одна из ваших организаций вызывается octocat-emu , чтобы использовать git хост github-emu.com для репозиториев, octocat-emu выполните следующую команду

    Shell
    git config --global url."git@github-emu.com:octocat-emu/".insteadOf "git@github.com:octocat-emu/"
    

Теперь, когда вы клонируете репозиторий с помощью SSH, в octocat-emu организации git будет использоваться SSH-ключ, связанный с вашим корпоративный с управляемыми пользователями, вместо вашего личного ключа.

Дальнейшие шаги

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