Как аутентифицировать GitHub с помощью SSH и Push-кода безопасно

Дата публикации: 2025-08-09T10:28:42

Теги: ["github", "coding", "deployment"]

⏪ Вернуться домой
⏪ В Gemlog

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

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

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

$ ls -al ~/.ssh

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

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

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

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

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

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

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

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

# Для 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-агент на заднем плане:

eval "$(ssh-agent -s)"

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

Для Ed25519:

$ ssh-add ~/.ssh/id_ed25519

Для RSA:

$ ssh-add ~/.ssh/id_rsa

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

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

Для Ed25519:

$ cat ~/.ssh/id_ed25519.pub

Для RSA:

$ 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-ключ работает правильно:

$ ssh -T git@github.com

Написать Да.

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

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

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

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

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

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

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

$ git remote -v

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

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

Сменить на SSH:

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

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

$ git remote -v

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Завершение

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

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