sadrix logoSadriX
Минцифры готовит обязательную регистрацию IMEI смартфонов, купленных за границей
Гайды

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

Полное руководство по настройке SSH-доступа к GitHub для Windows, macOS и Linux

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

Введение

SSH-ключи — это безопасный и удобный способ аутентификации на GitHub без необходимости вводить пароль при каждой операции с репозиторием. Они особенно полезны для разработчиков, которые часто работают с Git через командную строку. В этом руководстве мы подробно разберём процесс создания 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-ключа

В терминале выполните команду, заменив your_email@example.com на 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 — это программа, которая хранит ваши SSH-ключи и управляет ими. Чтобы добавить ключ в агент, выполните:

1. Запустите ssh-agent в фоновом режиме:

eval "$(ssh-agent -s)"

Вы увидите что-то вроде Agent pid 12345.

2. Добавьте ваш приватный ключ:

ssh-add ~/.ssh/id_ed25519

Если вы использовали RSA, замените имя файла на id_rsa. Если задавали парольную фразу, введите её.

> Примечание для macOS: Если вы используете macOS Sierra 10.12.2 или новее, возможно, потребуется дополнительно настроить ~/.ssh/config для автоматического добавления ключей в связку ключей. Инструкция есть в документации GitHub.

> Примечание для Windows: В Windows 10 и 11 можно использовать OpenSSH-клиент, встроенный в систему. Если вы используете Git Bash, команды те же. В PowerShell может потребоваться запустить ssh-agent как службу.

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

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

  • Windows (Git Bash):

clip < ~/.ssh/id_ed25519.pub
  • macOS:

pbcopy < ~/.ssh/id_ed25519.pub
  • Linux:

xclip -sel clip < ~/.ssh/id_ed25519.pub

Если утилита xclip не установлена, можно просто вывести содержимое файла и скопировать вручную:

cat ~/.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 вставьте скопированный публичный ключ. 7. Нажмите Add SSH key.

При запросе подтвердите действие, введя пароль от аккаунта GitHub.

Шаг 6: Проверка подключения

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

ssh -T git@github.com

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

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

Это означает, что SSH-ключ работает.

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

Если вы клонировали репозитории через HTTPS, их удалённые URL нужно изменить на SSH. Проверить текущий URL можно командой:

git remote -v

Чтобы изменить URL на SSH, выполните:

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

Замените username и repo на свои данные.

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

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

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

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

Затем при клонировании используйте соответствующий хост:

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

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

  • Ошибка "Permission denied (publickey)" — обычно означает, что ключ не добавлен в ssh-agent или в GitHub. Проверьте шаги 3 и 5.

  • Ключ не добавляется в ssh-agent — убедитесь, что агент запущен. В Windows может потребоваться запустить службу ssh-agent.

  • Неправильный email в ключе — это не критично, но лучше указывать актуальный email.

  • Забыли парольную фразу — придётся сгенерировать новый ключ.

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

FAQ

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

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

Нужно ли использовать парольную фразу? Да, это рекомендуется для защиты приватного ключа. Если кто-то получит доступ к вашему компьютеру, без парольной фразы он сможет использовать ключ.

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

Работает ли SSH с GitHub Actions? Да, но для CI/CD обычно используются deploy-ключи или секреты.

Итог

Настройка SSH-доступа к GitHub занимает несколько минут, но значительно упрощает работу с репозиториями. Вы больше не будете вводить пароль при каждом push или pull. Следуйте нашей инструкции, и у вас всё получится. Если возникнут трудности, обратитесь к официальной документации GitHub или задайте вопрос в комментариях.

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

Комментарии

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

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