Создание SSH-ключа
Дисклеймер: эта статься не описывает работу сетевых подключений, протоколов и прочих подобных технологий, это краткий пересказ инструкции с Gitalb о создании одного ed25519
SSH-ключа.
В рамках нашей учёбы для удобного взаимодействия с Gitlab мы можем воспользоваться SSH-ключом для аутенфикации, чтобы не вводить логины и пароли по многу раз.
Итак, для Windows откроем Gitbash, далее - терминал, для Mac и Linux просто терминал, и выполним такую команду:
ls -lah ~/.ssh
Мы увидим сообщение о том, что папки .ssh нет, либо, если она есть, содержимое этой папки. Оба варианта представлены на скринах.
Если папка .ssh у вас есть и в ней есть ключи, то с ними нужно разобраться, где и как они используются. Если вы ТОЧНО уверены, что эти ключи вам не нужны и вы не знаете откуда они появились или создали их по ошибке, то папку .ssh можно удалить, выполнив следующую команду в терминале:
rm -r ~/.ssh
Для Mac и Linux (после ввода может запросить пароль, при вводе пароля он не отображается)
sudo rm -r ~/.ssh
Когда папку .ssh удалили, то можно приступать к созданию нового ключа. Для этого в терминале наберём команду, заменив <comment> на ваш комментарий. Это может быть названине ключа, аккаунта или просто email:
ssh-keygen -t ed25519 -C "<comment>"
Я введу название ноутбука. Появится предложенный путь и имя файла ключа:
Всё оставим как есть, просто нажав Enter. Далее будет предложено придумать пароль для ключа. Я оставлю его пустым, просто нажав Enter, тем самым соглашаясь использовать ключ без пароля:
Подтверждаем пустой пароль, нажав Enter:
Далее видим сообщение о том, что наш ключ готов:
Теперь нам нужно скопировать содержимое файла id_ed25519.pub. Вы можете сделать это любым удобным способом, я напишу варианты, как сделать это через терминал.
cat ~/.ssh/id_ed25519.pub | clip
tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy
xclip -sel clip < ~/.ssh/id_ed25519.pub
В некоторых дистрибутивах Linux может не быть установлено утилиты xclip. По подсказкам в терминале вы сможете её установить и повторить попытку.
Далее, переходим в наш аккаунт на Gitlab, заходим в раздел SSH-keys и видим вот такую картину:
Сейчас ключей никаких нет. Если у вас они есть, то нужно сделать тоже самое, как описано в начале статьи про папку .ssh.
Заходим в поле key и вставляем ключ:
Нажимаем на крестик, если хотим не ограничивать срок годности ключа и нажимаем кнопку "Add key":
Проверим соединение, что всё успешно. Для этого в терминале выполним:
Появится вопрос, ответим убедительно "Yes" и видим приглашение от Gitlab: