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

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

1. Установка KeePassXC:
- Перейдите на официальный сайт KeePassXC (https://keepassxc.org/) и скачайте версию для вашей операционной системы.
- Установите KeePassXC, следуя инструкциям на экране.

2. Создание и сохранение ключей SSH:
- Откройте терминал (на Linux и macOS) или командную строку (на Windows).
- Убедитесь, что у вас уже установлен Git. Если нет, установите его с помощью инструкций, доступных на официальном сайте Git (https://git-scm.com/).
- Для каждого аккаунта GitHub, для которого вы хотите использовать отдельный ключ SSH, выполните следующие команды:

     $ ssh-keygen -t rsa -b 4096 -C "[email protected]"

При выполнении этой команды будет предложено выбрать местоположение и имя файла для сохранения ключа. Например, вы можете указать 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".

3. Настройка KeePassXC:
- Откройте KeePassXC и создайте новую базу данных (или откройте существующую, если у вас уже есть).
- Создайте новую запись для каждого из ваших аккаунтов GitHub.
- В каждой записи укажите имя вашего аккаунта GitHub и имя/путь к соответствующему файлу вашего ключа SSH (например, id_rsa_personal, id_rsa_work, и т.д.).
- Убедитесь, что при создании записей вы указали корректный путь к файлу вашего ключа SSH в поле "Атрибуты" -> "Имя файла".
- Сохраните базу данных KeePassXC.

4. Настройка 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

5. Настройка 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.

6. Протестируйте соединение:
- Откройте терминал (на Linux и macOS) или командную строку (на Windows).
- Попробуйте подключиться к вашему аккаунту GitHub с использованием SSH:

     $ ssh -T [email protected]

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

     $ ssh -T [email protected]

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

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