Как использовать несколько ключей SSH для разных аккаунтов Github через KeePassXC?

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

  1. Установка KeePassXC:
  • Перейдите на официальный сайт KeePassXC (https://keepassxc.org/) и скачайте версию для вашей операционной системы.
  • Установите KeePassXC, следуя инструкциям на экране.
  1. Создание и сохранение ключей SSH:
  • Откройте терминал (на Linux и macOS) или командную строку (на Windows).
  • Убедитесь, что у вас уже установлен Git. Если нет, установите его с помощью инструкций, доступных на официальном сайте Git (https://git-scm.com/).
  • Для каждого аккаунта GitHub, для которого вы хотите использовать отдельный ключ SSH, выполните следующие команды:
     $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

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

  • После выполнения этих команд у вас должны появиться соответствующие файлы ключей (id_rsa_personal, id_rsa_work, и т.д.) и соответствующие файлы публичных ключей (id_rsa_personal.pub, id_rsa_work.pub, и т.д.).
  • Следующий шаг - добавить ваши публичные ключи SSH на страницу настройки своего профиля на GitHub. Для этого откройте файлы .pub соответствующих ключей, скопируйте их содержимое и добавьте в свою учетную запись GitHub в разделе "SSH and GPG Keys".
  1. Настройка KeePassXC:
  • Откройте KeePassXC и создайте новую базу данных (или откройте существующую, если у вас уже есть).
  • Создайте новую запись для каждого из ваших аккаунтов GitHub.
  • В каждой записи укажите имя вашего аккаунта GitHub и имя/путь к соответствующему файлу вашего ключа SSH (например, id_rsa_personal, id_rsa_work, и т.д.).
  • Убедитесь, что при создании записей вы указали корректный путь к файлу вашего ключа SSH в поле "Атрибуты" -> "Имя файла".
  • Сохраните базу данных KeePassXC.
  1. Настройка SSH-агента:
  • Откройте терминал (на Linux и macOS) или командную строку (на Windows).
  • Запустите SSH-агент командой:
     $ eval "$(ssh-agent -s)"
  • Добавьте в SSH-агент ваши ключи SSH, используя свои пароли для каждого ключа:
     $ ssh-add /path/to/your/keyfile

Например:

     $ ssh-add /path/to/id_rsa_personal
     $ ssh-add /path/to/id_rsa_work
  • При этом вы должны увидеть вывод, говорящий о том, что ключи успешно добавлены к агенту SSH.
  • Убедитесь, что агент SSH работает правильно проверкой списка доступных ключей:
     $ ssh-add -l
  1. Настройка SSH-конфигурации:
  • Откройте терминал (на Linux и macOS) или командную строку (на Windows).
  • Откройте файл ~/.ssh/config в текстовом редакторе (если этого файла нет, создайте его).
  • Добавьте следующую информацию для каждого аккаунта в разделе GitHub:
     Host personal.github.com
         HostName github.com
         User git
         IdentityFile /path/to/id_rsa_personal
     
     Host work.github.com
         HostName github.com
         User git
         IdentityFile /path/to/id_rsa_work

Помните, что вам нужно заменить /path/to/id_rsa_personal и /path/to/id_rsa_work соответствующими путями к файлам ваших ключей SSH.

  1. Протестируйте соединение:
  • Откройте терминал (на Linux и macOS) или командную строку (на Windows).
  • Попробуйте подключиться к вашему аккаунту GitHub с использованием SSH:
     $ ssh -T git@personal.github.com

Если все настроено правильно, вы должны увидеть сообщение от GitHub с приветствием вашего персонального аккаунта.

  • Попробуйте подключиться к вашему другому аккаунту GitHub:
     $ ssh -T git@work.github.com

Если все настроено правильно, вы должны увидеть сообщение от GitHub с приветствием вашей рабочей учетной записи.

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