Skip to the content.

Настраиваем подключение к гиту

Сразу оговорюсь, что данная статья написана на примере GitLab, в других системах, в том числе и GitHub, действия ровно те же.

Для того, чтобы начать контрибьютить в репозиторий гита, необходимо настроить доступ со своей рабочей станции. Предположим, что сам аккаунт в GitLab уже создан и у нас есть доступ из web-а.

Кликнув по иконке своего профиля, идем в Настройки / Preferences:

Здесь интересна вкладка Access Tokens, если хотим настроить доступ через https, или SSH Keys, если хотим использовать ssh.

Мы рассмотрим оба варианта.

Подключение через SSH

Один из способов подключения к гиту - по протоколу SSH. Подробно о нем рассказывать не буду (вы можете прочитать в любой другой статье), скажу лишь, что это безопасное соединение, в котором аутентификация происходит по ключевой паре. Для этого предварительно генерируется открытый и закрытый ключ. На машине, с которой требуется произвести подключение, хранится закрытый ключ, а на удалённой машине— открытый. Эти файлы не передаются при аутентификации, система лишь проверяет, что владелец открытого ключа также владеет и закрытым. Каким же образом?

Вот как проверяется ключ пользователя во время SSH-соединения, с точки зрения сервера:

Данный алгоритм основан на криптографии с открытым ключом.

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

ssh -V

Пакет OpenSSH входит в большинство дистрибутивов ОС по умолчанию. Если по какой-либо причине он отсутствует в вашей системе, вы можете установить его при помощи вашего пакетного менеджера. Теперь сгенерируем пару (открытый-закрытый ключ), для этого в консоли выполним команду:

ssh-keygen -t ed25519 -C "this is my comment" 

-t ed25519 - это схема цифровой подписи (на основе эллиптической кривой Эдвардса), которая используется для генерации открытого ключа. ed25519 используется по-умолчанию. Поэтому этот параметр можно не указывать, я лишь показываю, что схему можно выбрать. Другие варианты: dsa, ecdsa, ecdsa-s, ed25519, ed25519-sk, rsa.

-C "this is my comment" - это любой комментарий для вас. Забегая вперед, скажу, что этот комментарий добавляется в конец файла с открытым ключом. Вы можете не указывать его, я привык вписывать туда название проекта и окружение, кто-то указывается рабочую почту.

Далее необходимо выбрать, куда сохранить пару и название файла. В скобках предложенное название (это будет алгоритм выбранной цифровой подписи) и путь, которые можно использовать по-умолчанию. Советую путь (из примера выше /Users/ваш пользователь/.ssh) не менять, а название использовать такое, чтобы вы сами в первую очередь не запутались, какой ключ для какого гита и проекта используется. Я привык указывать указывать в названии гитлаб организации, для примера укажем gitlab.myorg.ru:

Далее вам будет предложено задать кодовую фразу (или пароль) для ключа. Это нужно для дополнительной защиты, если потенциальный злоумышленник получит доступ к вашему компьютеру. Обращаю внимание, что если задать кодовую фразу, ее потребуется вводить при каждой авторизации. С другой стороны, чтобы этого избежать, вы можете безопасно сохранить фразу в SSH-агенте, но об этом позже.

Я советую оставить фразу пустой:

Пара ключей сгенерировалась! Посмотрим на них =) Перейдем в указанную папку, в моем случае это /Users/c-villain/.ssh:

Файл с расширением .pub содержит публичный или открытый ключ, во втором файле секретный ключ. Заглянем внутрь файла с публичным ключом:

Да, здесь в конце строки видим как раз наш комментарий, указанный при генерации, а в начале - используемый алгоритм подписи.

В файле с секретным ключом:

Теперь необходимо добавить секретный ключ в SSH-агент. Делается это следующей командой:

 ssh-add ~/.ssh/gitlab.myorg.ru 

где ~/.ssh/gitlab.myorg.ru - это путь до вашего файла с секретным ключом.

Если на этапе генерации пары ключей вы все же решили добавить кодовую фразу, то эту команду надо запускать с флагом --apple-use-keychain:

ssh-add --apple-use-keychain ~/.ssh/gitlab.myorg.ru 

Нужно будет повторить секретную фразу в консоли, чтобы ключ прописался в SSH-агенте.

Теперь копируем весь публичный ключ и идем в гитлаб, раздел SSH Keys, нажимаем кнопку добавить ключ:

В текстовое поле копируем публичный ключ:

В поле Название (Title) по-умолчанию подставился тот самый комментарий, вы можете назвать ключ в гитлабе как хотите. Срок окончания действия ключа (Expiration date) опционален, его можно и вовсе не указывать. В зависимости от требований отдела кибербеза срок действия ключей может быть ограничен. Добавим ключ, нажмем “Add key”:

Ключ успешно прописан. При повторном заходе в раздел SSH Keys мы видим:

Когда будете клонировать проект по ssh, то используйте путь “Clone with ssh” в меню Code:

В клиенте это выглядит так:

Подключение через HTTPS

Второй способ подключиться к гиту - использовать https. Он же самый простой. Здесь, чтобы авторизоваться, необходимо запровайдить токен доступ. Идем в Access tokens в Preferences и нажимаем “Add new token”:

Указываем название токена, например, Access, если нужно ограничиваем срок действия токена в Expiration date, и указываем необходимые права: как минимум, read_repository и write_repository, чтобы можно было пушить ваш код и читать из репозитория:

Нажимаем “Create personal access token”:

В открывшемся окне, нажав на иконку “глаза”, можно посмотреть на сгенерированный токен, копируем его и сохраняем.

Когда будете клонировать проект по ssh, то используйте путь “Clone with HTTPS” в меню Code:

Теперь идем в гит клиент. При клонировании репозитория с проектом, клиент потребует ввести логин (это пользователь в гитлабе) и пароль, сюда и вводим токен:

На этом все, мы рассмотрели два способа настройки гита, ваш клиент настроен.