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

Настройка git для работы через ssh

· 2 мин. чтения

Вкратце: генерируем ключ, добавляем его на гитхаб, заставляем репозиторий использовать ключ вместо логин-токен

Зачем? Чтобы не приходилось постоянно вводить логин-токен или хранить его в открытом виде в .git-credentials (безопасность + простота)

Генерируем ключ на машине, которая будет выполнять git команды

$ ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/github

Говорим хосту использовать наш ключ

Это нужно, чтобы не теребить ssh-agent и ssh-add. Так хост будет автоматически понимать какой ключ использовать.

Создаем или редактируем ~/.ssh/config. Прописываем следующее:

Host github.com
HostName github.com
IdentityFile ~/.ssh/github

Если ~/.ssh/config не существовал, то может потребоваться ввести chmod 600 ~/.ssh/config.

Сообщаем о нашем ключе GitHub'у

  1. Смотрим сам ключ: cat ~/.ssh/github.pub, копируем его в буфер обмена
  2. Открываем https://github.com/settings/keys, добавляем туда скопированный ключ. Название не важно

Заставляем репозиторий работать через ssh, а не логин-токен

Если раньше вы писали git clone https://github.com/USER_NAME/REPO_NAME.git, то теперь будет git clone git@github.com:USER_NAME/REPO_NAME.git

Разница наглядно:

$ git clone git@github.com:USER_NAME/REPO_NAME.git
$ git clone https://github.com/USER_NAME/REPO_NAME.git

Может быть полезно:

Ну и на главной странице есть другая всячина