sadrix logoSadriX
Гайды

Как создать SSH-ключ и добавить его в GitHub: полное руководство

Настройка SSH-доступа к GitHub за 10 минут: от генерации ключа до проверки соединения

010 422 просмотров4 мин
0
Поделиться:TelegramVK

Введение

Если вы часто работаете с GitHub, то наверняка устали вводить логин и пароль при каждом push или pull. SSH-ключи решают эту проблему: они обеспечивают безопасную аутентификацию без необходимости вводить учётные данные. В этом руководстве мы разберём, как создать SSH-ключ, добавить его в ssh-agent и привязать к вашему аккаунту GitHub. Инструкция подходит для Windows, macOS и Linux.

Требования

  • Установленный Git (проверьте командой git --version).

  • Аккаунт на GitHub.

  • Доступ к терминалу (Command Prompt, PowerShell, Terminal или Bash).

  • Базовое понимание командной строки.

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

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

ls -al ~/.ssh

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

Шаг 2: Генерация нового SSH-ключа

Введите команду, заменив email на ваш адрес, привязанный к GitHub:

ssh-keygen -t ed25519 -C "your_email@example.com"

Если ваша система не поддерживает Ed25519, используйте RSA:

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

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

Затем система попросит ввести парольную фразу (passphrase). Это дополнительная защита: даже если кто-то получит ваш приватный ключ, без пароля он не сможет им воспользоваться. Можно оставить поле пустым, но мы рекомендуем задать надёжный пароль.

Шаг 3: Добавление ключа в ssh-agent

ssh-agent — это программа, которая хранит ваши ключи в памяти и избавляет от необходимости вводить пароль каждый раз.

Для macOS и Linux:

Запустите агент в фоновом режиме:

eval "$(ssh-agent -s)"

Вы увидите что-то вроде Agent pid 12345. Затем добавьте ключ:

ssh-add ~/.ssh/id_ed25519

Для Windows (PowerShell):

Убедитесь, что служба ssh-agent запущена. Откройте PowerShell от имени администратора и выполните:

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent

Затем добавьте ключ:

ssh-add ~/.ssh/id_ed25519

Если вы используете Git Bash, команды будут такими же, как для Linux.

Шаг 4: Копирование публичного ключа

Теперь нужно скопировать содержимое публичного ключа (файл с расширением .pub).

macOS:

pbcopy < ~/.ssh/id_ed25519.pub

Linux:

cat ~/.ssh/id_ed25519.pub

Выделите и скопируйте выведенный текст.

Windows (PowerShell):

Get-Content ~/.ssh/id_ed25519.pub | Set-Clipboard

Windows (Git Bash):

clip < ~/.ssh/id_ed25519.pub

Убедитесь, что скопировали именно публичный ключ (он начинается с ssh-ed25519 или ssh-rsa и заканчивается вашим email).

Шаг 5: Добавление ключа в GitHub

1. Войдите в свой аккаунт GitHub. 2. В правом верхнем углу нажмите на аватар и выберите Settings. 3. В левом меню перейдите в раздел SSH and GPG keys. 4. Нажмите кнопку New SSH key. 5. В поле Title введите описательное имя, например «Домашний ноутбук». 6. В поле Key type оставьте Authentication Key. 7. Вставьте скопированный публичный ключ в поле Key. 8. Нажмите Add SSH key.

Если потребуется, подтвердите действие паролем от аккаунта GitHub.

Шаг 6: Проверка соединения с GitHub

Чтобы убедиться, что всё настроено правильно, выполните в терминале:

ssh -T git@github.com

Вы можете увидеть предупреждение о подлинности хоста. Введите yes, чтобы продолжить. Если ключ добавлен верно, вы увидите сообщение:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

Это означает, что аутентификация прошла успешно.

Шаг 7: Настройка Git для использования SSH

Если вы клонировали репозиторий через HTTPS, его удалённый URL использует HTTPS. Чтобы переключиться на SSH, выполните:

git remote set-url origin git@github.com:username/repo.git

Проверьте:

git remote -v

Теперь все операции push и pull будут выполняться через SSH.

Шаг 8: Работа с несколькими аккаунтами GitHub

Если у вас несколько аккаунтов, можно настроить разные ключи для каждого. Создайте отдельные ключи и добавьте их в ssh-agent. Затем настройте файл ~/.ssh/config:

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

Теперь при клонировании используйте псевдонимы:

git clone git@github-work:work-username/repo.git

Типичные ошибки

  • Ключ не добавлен в ssh-agent. Если при подключении запрашивается пароль, проверьте, что ключ добавлен командой ssh-add -l.

  • Неправильный формат ключа. Убедитесь, что копируете публичный ключ целиком, без лишних пробелов и переносов строк.

  • Использование HTTPS вместо SSH. Проверьте URL удалённого репозитория командой git remote -v.

  • Права доступа к файлам. В Linux и macOS файлы .ssh должны иметь права 700, а ключи — 600. Исправьте командой chmod 600 ~/.ssh/id_ed25519.

  • Устаревший алгоритм. GitHub не поддерживает ключи DSA. Используйте Ed25519 или RSA.

FAQ

Вопрос: Можно ли использовать один SSH-ключ для нескольких устройств? Да, можно скопировать приватный ключ на другое устройство, но это менее безопасно. Лучше сгенерировать отдельный ключ для каждого устройства.

Вопрос: Что делать, если я забыл парольную фразу? Восстановить её невозможно. Придётся сгенерировать новый ключ и добавить его в GitHub.

Вопрос: Как удалить старый ключ из GitHub? В настройках SSH and GPG keys найдите нужный ключ и нажмите Delete.

Вопрос: Нужно ли добавлять приватный ключ в GitHub? Нет, ни в коем случае. В GitHub добавляется только публичный ключ.

Вопрос: Почему при подключении появляется предупреждение о подлинности хоста? Это нормально при первом подключении. Введите yes, чтобы добавить GitHub в список доверенных хостов.

Итог

Настройка SSH-доступа к GitHub занимает всего несколько минут, но избавляет от постоянного ввода пароля и повышает безопасность. Вы сгенерировали ключ, добавили его в ssh-agent и привязали к аккаунту GitHub. Теперь можно работать с репозиториями без лишних усилий. Если что-то пошло не так, проверьте типичные ошибки и FAQ — скорее всего, решение уже есть.

Читайте также

Комментарии

Комментарии доступны только зарегистрированным пользователям. Войти

  • Пока нет комментариев. Будьте первым.