Когда я решил перейти на GitLab, то долгое время никак не мог подружиться с SSH соединением к этому ресурсу.
Но сейчас, после длительного гугления и некоторого практического опыта, хочу поделиться основами для тех кто только начинает постигать эти технологии.
Я предполагаю, что вы сами уже зарегистрировались на GitLab и даже создали там какой-то проект.
Теперь наша задача этот проект скопировать на компьютер, внести некоторые изменения и залить обратно на GitLab.
Шаг №1: Создаем ключ SSH у себя на компьютере
Счастливые обладатели Windows переходят по ссылке Git for Windows, устанавливают это приложения и запускают утилиту Git Bash, это эмулятор терминала, все последующие команды выполняются в этой утилите.
Пользователи macOS и Linux - просто открывают терминал.
В командной строке выполняем команду
cd ~
ls -alh
В появившемся списке ищем есть ли папка .ssh
Если ее нет, тогда создаем
mkdir .ssh
Если такая папка существует, или после ее создания переходим в нее
cd .ssh
Выполняем команду
ssh-keygen
Результат выполнения этой команды будет следующий
<your-name>@<your-name> .ssh % ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/<your-name>/.ssh/id_rsa): my-ssh-key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in my-ssh-key.
Your public key has been saved in my-ssh-key.pub.
The key fingerprint is:
SHA256:82Qp/j20YjB8Bb1i/sWjsl5VNmaTyA0KYEbRChZ5cJ8 <your-name>@<your-name>.local
The key's randomart image is:
+---[RSA 2048]----+
| o=B+. . . |
| ++...+ + + .|
| . o .E o + Bo|
| . o.o ooo|
| .So+o .. |
| .+*o ..+ |
| .+.o.+ . |
| .+o= |
| o++.. |
+----[SHA256]-----+
<your-name>@<your-name> .ssh %
Это обозначает что вы создали ключ у себя на компютере. Ключей на самом деле два. Один файл с расширением *.pub - это тот самый файл содержимое которого вы будете переносить в GitLab и второй файл с таким же именем но без расширения, этот файл копировать не нужно.
Шаг №2: Копируем ключ SSH на GitLab
vim <путь к файлу>.pub
или
nano <путь к файлу>.pub
или
cat <путь к файлу>.pub
Указываете путь к только что созданному файлу, в моем примере это файл my-ssh-key.pub
Все содержимое этого файла копируем в буфер обмена и переходим в учетную запись на GitLab
В правом верхнем углу нажимаем на на свою аватарку и во всплывающем меню выбираем поле "Настройки" или "Settings"
В левой боковой панели выбираем пункт "Ключи SSH" или "SSH keys"
На этой странице вы увидите большое текстовое поле под заголовком "Добавить SSH ключ" или "Add an SSH key"
Из буфера обмена вставляете ключ в поле и добавляете его!
Шаг №3: Клонируем проект из GitLab себе на комп
Заходите в проект который вы хотите склонировать себе на компьютер и справа нажимаете синюю кнопку
Копируете первую строку и переходите в терминал
В терминале выбираете нужную вам папку после чего пишете:
git clone <путь к проекту на GitLab>
На этом все!
Пользуетесь, вносите изменения, а потом можете запушить проект обратно.
Пост скриптум!
Во время клонирования проекта система может выдать ошибку о том что у вас не достаточно прав для авторизации.
Эта проблема решается очень легко
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/<имя вашего файла БЕЗ расширения pub>
После выполнения этих команд снова выполняете строку git clone <путь к проекту на GitLab> и у вас все получается!