Как аутентифицировать GitHub с помощью SSH и Push-кода безопасно
Дата публикации: 2025-08-09T10:28:42
Теги: ["github", "coding", "deployment"]
При работе с 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 разработчики могут легко отслеживать изменения, одновременно работать над независимыми функциями и беспрепятственно объединять добавленный код.
Вы также можете поделиться статьей со своими друзьями в социальных сетях, которым может быть интересна эта статья, или просто оставить комментарий ниже. Спасибо.