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

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

Примечание. Команды/инструменты, используемые для ОС MAC.

› Создайте новый ключ SSH для рабочей и личной учетных записей github

Для создания ключа ssh мы будем использовать ssh-keygen(Команда ssh-keygen является компонентом большинства реализаций SSH, используемых для создания пары открытых ключей для использования при аутентификации на удаленном сервере. )

Генерация SSH-ключа для личного кабинета

$ ssh-keygen -t rsa -C "[email protected]" -f "id_rsa_personal" -P passphrase
  • -tТип. Этот параметр указывает тип создаваемого ключа. Обычно используются следующие значения: — rsa для ключей RSA — dsa для ключей DSA — ecdsa для ключей DSA эллиптической кривой.
  • -C —"Комментарий" Изменяет комментарий к ключевому файлу.
  • -f — «Файл» Указывает имя файла, в котором будет храниться созданный ключ.
  • -P — «Парольная фраза» Изменить парольную фразу файла закрытого ключа.

Создание ключа SSH для учетной записи на рабочем месте

$ ssh-keygen -t rsa -C "[email protected]" -f "id_rsa_workplace" -P passphrase

Чтобы перечислить все ключи SSH

$ ls -al ~/.ssh

Ключи SSH успешно созданы.

› Скопируйте открытый ключ

Для личного кабинета

$ pbcopy < ~/.ssh/id_rsa_personal

Для рабочего аккаунта

$ pbcopy < ~/.ssh/id_rsa_workplace

› Добавление нового ключа SSH в соответствующую учетную запись GitHub

Теперь нам нужно зарегистрировать ключи к соответствующим учетным записям Github. Для этого вам необходимо выполнить следующие шаги после входа в github:

Посетите https://github.com/settings/keys

or

  1. Go to Settings
  2. Выберите SSH and GPG keys в меню слева.
  3. Нажмите на New SSH key и укажите заголовок в разделе заголовка и вставьте ключ в разделе ключей. Подтвердите комментарий как идентификатор электронной почты, предоставленный во время создания ключа.
  4. Нажмите на Add key.

› Конфигурационный файл SSH

Теперь нам нужно добавить правила конфигурации SSH для разных хостов, у которых есть Hostname, User и IdentityFile.

Файл конфигурации SSH будет доступен по адресу ~/.ssh/config. Отредактируйте его, если он существует, иначе мы можем просто создать его.

$ cd ~/.ssh

если файл конфигурации недоступен, вам необходимо создать его

$ touch config

и теперь добавьте следующую конфигурацию в ваш файл

# Personal account
Host github.com
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_personal
# Workplace account
Host github.com-workplace
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_workplace

› Зарегистрируйте ключи SSH с помощью ssh-agent

Чтобы зарегистрировать SSH с помощью SSH-агента, вам необходимо убедиться, что ssh-агент запущен, если он запущен, он предоставит PID.

$ ssh-agent -s

Добавьте ключи к SSH-агенту следующим образом:

$ ssh-add ~/.ssh/id_rsa_personal
$ ssh-add ~/.ssh/id_rsa_workplace

перечислить все ключи

$ ssh-add -l

› Активируйте только один ключ за раз

Сначала удалите все ключи, а затем добавьте ключ либо личный, либо рабочий.

Добавление ключей для личного кабинета

$ ssh-add -D            #removes all ssh entries from the ssh-agent
$ ssh-add ~/.ssh/id_rsa_personal

Те же шаги, которые необходимо выполнить при добавлении ключей учетной записи рабочего места

$ ssh-add -D            
$ ssh-add ~/.ssh/id_rsa_workplace

Примечание. Проверяйте URL-адрес при клонировании репозитория.

› Настройка удаленного URL-адреса

git remote set-url origin https://{TOKEN }@github.com/{username}/{repository}.git

Чтобы сгенерировать токен

Посетите https://github.com/tokens

or

  1. Go to Settings
  2. Выберите Developer Settings в меню слева.
  3. Нажмите на Personal access tokens и выберите Жетоны (классические).
  4. Нажмите на Generate the new Token.
  5. Выберите права для включения и Generate new token .
  6. Скопируйте токен личного доступа.

Теперь вы можете продолжить отправку кода в удаленный репозиторий.