Про Git
December 3, 2024

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

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

В рамках нашей учёбы для удобного взаимодействия с Gitlab мы можем воспользоваться SSH-ключом для аутенфикации, чтобы не вводить логины и пароли по многу раз.

Итак, для Windows откроем Gitbash, далее - терминал, для Mac и Linux просто терминал, и выполним такую команду:

ls -lah ~/.ssh

Мы увидим сообщение о том, что папки .ssh нет, либо, если она есть, содержимое этой папки. Оба варианта представлены на скринах.

Папка отсутствует.
Папка с ключами есть.

Если папка .ssh у вас есть и в ней есть ключи, то с ними нужно разобраться, где и как они используются. Если вы ТОЧНО уверены, что эти ключи вам не нужны и вы не знаете откуда они появились или создали их по ошибке, то папку .ssh можно удалить, выполнив следующую команду в терминале:

Для Windows

rm -r ~/.ssh

Для Mac и Linux (после ввода может запросить пароль, при вводе пароля он не отображается)

sudo rm -r ~/.ssh

Когда папку .ssh удалили, то можно приступать к созданию нового ключа. Для этого в терминале наберём команду, заменив <comment> на ваш комментарий. Это может быть названине ключа, аккаунта или просто email:

ssh-keygen -t ed25519 -C "<comment>"

Я введу название ноутбука. Появится предложенный путь и имя файла ключа:

Всё оставим как есть, просто нажав Enter. Далее будет предложено придумать пароль для ключа. Я оставлю его пустым, просто нажав Enter, тем самым соглашаясь использовать ключ без пароля:

Подтверждаем пустой пароль, нажав Enter:

Далее видим сообщение о том, что наш ключ готов:

Проверим наличие ключей:

Теперь нам нужно скопировать содержимое файла id_ed25519.pub. Вы можете сделать это любым удобным способом, я напишу варианты, как сделать это через терминал.

Windows

cat ~/.ssh/id_ed25519.pub | clip

Mac

tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy

Linux

xclip -sel clip < ~/.ssh/id_ed25519.pub

В некоторых дистрибутивах Linux может не быть установлено утилиты xclip. По подсказкам в терминале вы сможете её установить и повторить попытку.

Далее, переходим в наш аккаунт на Gitlab, заходим в раздел SSH-keys и видим вот такую картину:

Сейчас ключей никаких нет. Если у вас они есть, то нужно сделать тоже самое, как описано в начале статьи про папку .ssh.

Заходим в поле key и вставляем ключ:

Нажимаем на крестик, если хотим не ограничивать срок годности ключа и нажимаем кнопку "Add key":

Появилась информация о ключе:

Проверим соединение, что всё успешно. Для этого в терминале выполним:

ssh -T git@gitlab.skillbox.ru

Появится вопрос, ответим убедительно "Yes" и видим приглашение от Gitlab:

Теперь можно работать с репозиториями через протокол ssh.

На этом всё )