Перейти к основному содержимому

Ключи SSH

Введение

При работе с Git часто возникает необходимость подключения к репозиторию через SSH. Такое подключение избавляет от необходимости ввода пароля для каждой команды Git.

Для подключения к репозиторию через SSH необходимо создать файл ключа SSH в домашнем каталоге пользователя. Для этого используется команда ssh-keygen.

Создание SSH-ключей в Windows

  1. В командной строке выполните команду и следуйте инструкциям:
ssh-keygen

В случае успешного выполнения команды в каталоге пользователя (C:\Users\USERNAME\.ssh) будут созданы файлы id_rsa и id_rsa.pub.

  1. Добавьте SSH-ключ в свой аккаунт GitLab. Для этого перейдите в настройки аккаунта и в разделе SSH keys создайте новый ключ, вставив в поле Key содержимое файла id_rsa.pub.

Создание SSH-ключей в WSL

Если проект развёрнут в каталоге WSL, то генерация ключа также должна быть выполнена в каталоге WSL. Для этого:

  1. Запустите консоль Ubuntu (поиск "Ubuntu" в меню "Пуск"). Если используется другой Linux-дистрибутив — запустите его консоль.

  2. Выполните команду и следуйте инструкциям:

ssh-keygen

В случае успешного выполнения команды в каталоге пользователя (\\wsl.localhost\Ubuntu\home\USERNAME\.ssh) будут созданы файлы id_rsa и id_rsa.pub.

  1. Добавьте 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 не должно возникать ошибок, связанных с авторизацией, а также запросов ввода логина/пароля.

При возникновении проблем перезагрузите устройство.