При работе с GitHub, используя HTTPS для подталкивания изменений, часто запрашивают ваше имя пользователя и пароль или токен личного доступа каждый раз. Лучший и более безопасный способ - использовать SSH аутентификацию. Это руководство покажет вам, как генерировать SSH-ключ, добавить его к учетной записи GitHub и изменить удаленный URL-адрес Git от HTTPS до SSH.

Шаг 1. Проверка существующих SSH Ключей

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

1
$ ls -al ~/.ssh

Если вы видите такие файлы, как id_rsa и id_rsa.pub или id_ed25519 и id_ed25519.pub, у вас уже есть SSH-ключи. Вы можете перейти к Шагу 3, если хотите использовать существующий ключ.

Шаг 2. Создание нового SSH Ключа

Если нет ключа или вы хотите создать новый, используйте алгоритм Ed25519 (рекомендуется) или RSA в качестве отката:

Для Ed25519 (рекомендуется):

1
$ ssh-keygen -t ed25519 -C «your_email@example.com»

Для RSA (если Ed25519 не поддерживается):

1
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Если ssh-keygen не найден, установите OpenSSH:

1
2
3
4
5
6
7
8
# Для Ubuntu/Debian
$ sudo apt install openssh-client

# Для Arch-based distros (e.g., EndeavourOS)
$ sudo pacman -S openssh

# Для CentOS/RHEL/Fedora
$ sudo dnf install openssh-clients

Нажмите Enter, чтобы принять расположение по умолчанию (~/.ssh/id_ed25519 или ~/.ssh/id_rsa)

Дополнительно введите безопасный пароль для дополнительной защиты.

Шаг 3. Добавьте ключ SSH к агенту SSH

Запустите ssh-агент на заднем плане:

1
eval "$(ssh-agent -s)"

Затем добавьте свой личный ключ SSH к агенту.

Для Ed25519:

1
$ ssh-add ~/.ssh/id_ed25519

Для RSA:

1
$ ssh-add ~/.ssh/id_rsa

Шаг 4. Добавьте публичный ключ к GitHub

Скопируйте свой публичный ключ к буферу обмена.

Для Ed25519:

1
$ cat ~/.ssh/id_ed25519.pub

Для RSA:

1
$ cat ~/.ssh/id_rsa.pub

Далее в GitHub:

  1. Перейти к GitHub.com → Нажмите на изображение профиля → Настройки.
  2. В боковой панели щелкните клавиши SSH и GPG.
  3. Нажмите кнопку Новый ключ SSH.
  4. В поле «Title» добавить описательный ярлык (например, «My Linux Dev Machine»).
  5. Выберите ключ аутентификации как ключевой тип.
  6. Вставить свой публичный ключ в поле “Кей”.
  7. Нажмите кнопку Добавить ключ SSH.
  8. В случае необходимости подтвердите доступ к учетной записи GitHub.

Шаг 5. Проверьте соединение SSH

Убедитесь, что ваш SSH-ключ работает правильно:

1
$ ssh -T git@github.com

Написать Да.

Ожидаемый успешный результат:

1
Привет! Вы успешно аутентифицированы, но GitHub не предоставляет доступ к оболочке.

Устранение общих проблем:

Если вы получили ошибку «Передача отрицает», дважды проверьте, что ваш ключ был правильно добавлен в GitHub

Если у вас есть ошибка “Host key verification failed”, запустите: ssh-keyscan github.com >> ~/.ssh/known_hosts

Шаг 6. Изменить удаленный от HTTPS на SSH

Проверьте свой текущий удаленный URL:

1
$ git remote -v

Если он показывает формат HTTPS:

1
2
origin  https://github.com/your_username/your_repo.git (fetch)
origin  https://github.com/your_username/your_repo.git (push)

Сменить на SSH:

1
$ git remote set-url origin git@github.com:your_username/your_repo.git

Проверка изменения:

1
$ git remote -v

Теперь следует показать формат SSH:

1
2
origin  git@github.com:your_username/your_repo.git (fetch)
origin  git@github.com:your_username/your_repo.git (push)

Для нескольких пультов:

Если у вас есть несколько пультов, вы можете изменить их индивидуально:

1
$ git remote set-url upstream git@github.com:original_owner/original_repo.git

Шаг 7. Как запушить проект на GitHub?

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

1
2
3
$ git add .
$ git commit -m "Initial commit"
$ git push -u origin master

Вас больше не будет требовать имя пользователя или пароль (если вы не установите пароль для своего SSH-ключа).

Передовая практика в области безопасности

Используйте сильный пароль для ключа SSH.

Храните свой личный ключ в безопасности - никогда не дельте его или не отправляйте его в хранилище.

Регулярно делайте ротацию SSH ключа (рекомендуется каждые 1-2 года).

Используйте различные SSH-ключи для различных услуг или сред.

Включить двухфакторную аутентификацию на аккаунте GitHub для дополнительной безопасности.

Завершение

С помощью Git разработчики могут легко отслеживать изменения, одновременно работать над независимыми функциями и беспрепятственно объединять добавленный код.

Вы также можете поделиться статьей со своими друзьями в социальных сетях, которым может быть интересна эта статья, или просто оставить комментарий ниже. Спасибо.