Гид по технологиям

Переключение репозитория GitHub с HTTPS на SSH

• 5 min read • GIT • Обновлено 01 Dec 2025
Переключение GitHub с HTTPS на SSH
Переключение GitHub с HTTPS на SSH

Быстрые ссылки

  • Переход на SSH аутентификацию
  • Замена удалённого URL (HTTPS → SSH)
  • Использование разных SSH-ключей

Логотип GitHub

Почему SSH или HTTPS — что выбрать

SSH и HTTPS — два распространённых способа аутентификации при работе с репозиториями GitHub.

  • HTTPS: удобно для новичков, работает через пароль или персональный токен доступа (PAT). Хорошо подходит для редких операций и если вы не хотите управлять ключами.
  • SSH: использует пару ключей (приватный + публичный), удобен для автоматизации, CI/CD и безопаснее при правильной настройке. Не требует ввода пароля при каждой операции (при корректной настройке агентом SSH).

Важно: GitHub рекомендует HTTPS для новичков из‑за простоты, но для автоматизации и серверных сценариев SSH часто предпочтительнее.

Иллюстрация сравнения SSH и HTTPS

Переход на SSH аутентификацию

GitHub по умолчанию предлагает HTTPS при клонировании. Если вы предпочитаете SSH, переключайте URL клонирования на «SSH» в интерфейсе и используйте SSH-адрес вида git@github.com:user/repo.git.

Шаги в обобщённом виде:

  1. Проверьте, есть ли у вас локально SSH-ключ.
  2. Если нет — создайте пару ключей с помощью ssh-keygen.
  3. Добавьте публичный ключ в настройки GitHub в разделе «SSH и GPG‑ключи».
  4. Убедитесь, что Git/SSH использует этот ключ, при необходимости настройте ~/.ssh/config.

Проверить существующий публичный ключ (обычно на Linux/macOS):

cat ~/.ssh/id_rsa.pub

На Windows путь может отличаться — например, ключи могут храниться в %HOMEDRIVE%%HOMEPATH%.ssh или в каталоге WSL, если вы используете Windows Subsystem for Linux. Рекомендуется WSL для предсказуемого поведения, похожего на Linux.

Создать новую пару ключей (пример с RSA):

ssh-keygen -t rsa -f ~/.ssh/id_rsa

После генерации скопируйте содержимое файла id_rsa.pub и вставьте его в настройках аккаунта GitHub в разделе «SSH и GPG‑ключи».

Скриншот страницы настроек SSH и GPG ключей на GitHub

Служба SSH-агент может понадобиться для кеширования ключа в сессии. На macOS и Linux обычно запускают ssh-agent и добавляют ключ командой:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

На Windows в WSL аналогично; в PowerShell можно использовать OpenSSH‑агент.

Замена HTTPS-удалённого на SSH в уже клонированном репозитории

Если вы уже клонировали репозиторий по HTTPS, удалённый адрес (remote) обычно называется origin и указывает на HTTPS-URL. Чтобы перейти на SSH:

  1. Удалите текущий origin:
git remote rm origin
  1. Добавьте origin с SSH-адресом:
git remote add origin git@github.com:user/repo.git
  1. Обновите данные и отправьте ветку:
git fetch origin
git push --set-upstream origin/master

Если вы клонируете новый репозиторий — при выборе URL в веб-интерфейсе GitHub переключите на «SSH» и копируйте SSH-адрес.

Скриншот переключения URL клонирования на SSH

Использование разных SSH‑ключей (несколько ключей на одной машине)

Когда у вас несколько аккаунтов GitHub (например, личный и рабочий), и вы хотите использовать отдельные ключи, нужно сообщить SSH, какой ключ применять для какого репозитория. Делается это через файл ~/.ssh/config.

Пример простого конфига с алиасами «personal» и «work»:

Host personal
  HostName github.com
  IdentityFile ~/.ssh/githubpersonal
  IdentitiesOnly yes

Host work
  HostName github.com
  IdentityFile ~/.ssh/githubwork
  IdentitiesOnly yes

Пояснения:

  • Host — локальный алиас, который вы будете использовать в URL репозитория.
  • HostName — фактический хост (github.com).
  • IdentityFile — путь до приватного ключа (без .pub).
  • IdentitiesOnly yes — заставляет SSH использовать только указанный IdentityFile, а не перебирать все ключи.

После этого нужно переустановить origin, используя алиас в URL:

git remote rm origin
git remote add origin git@personal:username/repository.git

Здесь «personal» заменяет github.com в SSH-URL. Это необходимо, потому что выбор ключа SSH происходит по значению Host в конфиге.

Если вы переносите один и тот же ключ на другую машину, можно скопировать файлы id_rsa и id_rsa.pub, но учитывайте риски: приватный ключ — секрет, храните его в защищённом месте.

Частые проблемы и решения

  • Проблема: SSH требует пароль снова и снова — проверьте, добавлен ли ключ в ssh-agent и указан ли правильный путь в ~/.ssh/config.
  • Проблема: «Permission denied (publickey)» — убедитесь, что публичный ключ добавлен в профиль GitHub и что вы используете тот же ключ, что и был загружен.
  • Проблема: Неправильный ключ выбран для репозитория — настройте Host-алиас и используйте git@alias:…

Примечание: не храните приватные ключи в общедоступных местах и не передавайте их по незащищённым каналам.

Мини‑методология: Быстрый чек‑лист для переключения на SSH

  1. На локальной машине: проверить наличие ключа командой cat ~/.ssh/id_rsa.pub.
  2. Если ключа нет — создать: ssh-keygen -t rsa -f ~/.ssh/id_rsa.
  3. Скопировать содержимое id_rsa.pub и добавить в GitHub → «SSH и GPG‑ключи».
  4. Если нужно — настроить ssh-agent и выполнить ssh-add.
  5. В репозитории заменить remote на git@github.com:… или на git@alias:… при использовании нескольких ключей.
  6. Выполнить git fetch и git push, убедиться, что push проходит без запроса пароля.

Критерии приёмки

  • git fetch/pull/push работают без запроса пароля (после корректной настройки агентa/ключа).
  • Для разных аккаунтов используется ожидаемый ключ (проверено ssh -v git@personal).
  • Публичный ключ присутствует в настройках нужного аккаунта GitHub.

Роли и чек‑листы

Разработчик (локальная машина):

  • Есть приватный ключ и публичный ключ добавлен в GitHub.
  • ssh-agent запущен и ключ добавлен.
  • Remote в репозитории указывает на SSH.

Администратор (сервер/CI):

  • Приватный ключ добавлен в защищённое хранилище (например, secrets менеджер CI).
  • Права доступа к ключам ограничены.
  • Параметры IdentitiesOnly и Host настроены при необходимости.

Офисный пользователь (перенос между устройствами):

  • Если ключи переносятся — защищённая передача (USB или зашифрованный архив).
  • Рассмотреть создание отдельного ключа для каждого устройства и добавление их в аккаунт GitHub.

Ментальные модели и когда не стоит переходить на SSH

  • Используйте SSH, если нужна автоматизация, CI/CD или вы часто выполняете git операции без вводa пароля.
  • Оставьте HTTPS, если вы редко работаете с Git, не хотите управлять ключами и комфортно используете персональные токены доступа (PAT).
  • Если вы на корпоративном ноутбуке с централизованным управлением ключей — согласуйте политику с IT.

Примеры команд и сниппеты (шпаргалка)

Проверить, какой remote установлен:

git remote -v

Добавить SSH‑remote:

git remote add origin git@github.com:user/repo.git

Добавить алиас с несколькими ключами:

# ~/.ssh/config
Host personal
  HostName github.com
  IdentityFile ~/.ssh/githubpersonal
  IdentitiesOnly yes

Тест подключения с подробностями:

ssh -T -v git@github.com

Диаграмма принятия решения

flowchart TD
  A[Нужно ли автоматизировать операции?] -->|Да| B[Использовать SSH]
  A -->|Нет| C[Оставить HTTPS]
  B --> D{Есть ли несколько аккаунтов?}
  D -->|Да| E[Настроить ~/.ssh/config и алиасы]
  D -->|Нет| F[Добавить один SSH ключ в аккаунт]

Краткое резюме

Переключение репозитория GitHub с HTTPS на SSH — это вопрос удобства и требований к безопасности. SSH удобен для автоматизации и серверных сценариев; HTTPS прост и быстрее для единоразовых действий. При нескольких аккаунтах используйте конфигурацию SSH с алиасами. Всегда защищайте приватные ключи и проверяйте подключение командой ssh -T -v git@… .

Сводка ключевых пунктов:

  • Создайте или найдите SSH-ключ.
  • Добавьте публичный ключ в GitHub.
  • Замените удалённый URL на SSH.
  • При нескольких ключах настройте ~/.ssh/config.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро