Ключи SSH
Введение
При работе с Git часто возникает необходимость подключения к репозиторию через SSH. Такое подключение избавляет от необходимости ввода пароля для каждой команды Git.
Для подключения к репозиторию через SSH необходимо создать файл ключа SSH в домашнем каталоге пользователя.
Для этого используется команда ssh-keygen.
Создание SSH-ключей в Windows
- В командной строке выполните команду и следуйте инструкциям:
ssh-keygen
В случае успешного выполнения команды в каталоге пользователя (C:\Users\USERNAME\.ssh)
будут созданы файлы id_rsa и id_rsa.pub.
- Добавьте SSH-ключ в свой аккаунт GitLab.
Для этого перейдите в настройки аккаунта и в разделе SSH keys
создайте новый ключ, вставив в поле
Keyсодержимое файлаid_rsa.pub.
Создание SSH-ключей в WSL
Если проект развёрнут в каталоге WSL, то генерация ключа также должна быть выполнена в каталоге WSL. Для этого:
Запустите консоль Ubuntu (поиск "Ubuntu" в меню "Пуск"). Если используется другой Linux-дистрибутив — запустите его консоль.
Выполните команду и следуйте инструкциям:
ssh-keygen
В случае успешного выполнения команды в каталоге пользователя (\\wsl.localhost\Ubuntu\home\USERNAME\.ssh)
будут созданы файлы id_rsa и id_rsa.pub.
- Добавьте SSH-ключ в свой аккаунт GitLab.
Для этого перейдите в настройки аккаунта и в разделе SSH keys
создайте новый ключ, вставив в поле
Keyсодержимое файлаid_rsa.pub.
Клонирование проектов
Для корректной работы SSH подключения при работе с Git-репозиториями клонирование репозиториев необходимо выполнять именно через SSH. Например:
git clone git@gitlab.develop.evolutrix.ru:evolutrix/ant-crm-core.git
В случае появления ошибок, связанных с отсутствием прав доступа, следует добавить созданный на предыдущем шаге ключ в ssh-agent:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Вместо id_rsa используйте название своего ключа, если оно отличается.
Заключение
При правильной настройке SSH-ключей при работе с Git через командную строку и/или GUI не должно возникать ошибок, связанных с авторизацией, а также запросов ввода логина/пароля.
При возникновении проблем перезагрузите устройство.