На рабочем месте мы часто сталкиваемся с проблемами при попытке опубликовать код в наших собственных репозиториях 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
- Go to
Settings - Выберите
SSH and GPG keysв меню слева. - Нажмите на
New SSH keyи укажите заголовок в разделе заголовка и вставьте ключ в разделе ключей. Подтвердите комментарий как идентификатор электронной почты, предоставленный во время создания ключа. - Нажмите на
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
- Go to
Settings - Выберите
Developer Settingsв меню слева. - Нажмите на
Personal access tokensи выберите Жетоны (классические). - Нажмите на
Generate the new Token. - Выберите права для включения и
Generate new token. - Скопируйте токен личного доступа.
Теперь вы можете продолжить отправку кода в удаленный репозиторий.