GitHub позволяет работать с репозиториями через SSH — это безопаснее и удобнее, чем HTTPS. Особенно полезно при регулярных git push и git pull: не нужно каждый раз вводить логин и пароль. Ниже — настройка на Windows, Linux и macOS.

Шаг 1: Подготовка папки .ssh и проверка наличия SSH-ключей

Для Linux / macOS

mkdir -p ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh

Для Windows

Откройте Командную строку или PowerShell и выполните:

mkdir .ssh
cd .ssh
dir

Шаг 2: Создание SSH-ключа

ssh-keygen -t rsa -b 4096 -C "ваш_email@example.com"

После запуска команда задаст несколько вопросов:

  1. Enter file in which to save the key (.../.ssh/id_rsa): — путь к файлу, где будет сохранён приватный ключ; если просто нажать Enter, он сохранится по умолчанию в ~/.ssh/id_rsa.

  2. Enter passphrase (empty for no passphrase): — дополнительный пароль к ключу: при его установке даже в случае кражи файла ключа им нельзя будет воспользоваться без этого пароля, а если оставить поле пустым и просто нажать Enter, ключ создастся без дополнительного пароля (удобнее, но менее безопасно).

  3. Enter same passphrase again: — повтор ввёденного пароля для подтверждения (или снова Enter, если оставили предыдущее поле пустым).

В результате в папке ~/.ssh появятся файлы вроде id_rsa (приватный ключ, никому не показывать) и id_rsa.pub (публичный ключ, его как раз нужно добавить в GitHub).

Шаг 3: Запуск SSH-агента и добавление ключа

SSH-агент позволяет не вводить passphrase (если вы его задали) и не подгружать ключ вручную при каждом использовании Git. Если вы создали ключ без дополнительного пароля, этот шаг обычно можно пропустить — Git сможет использовать ключ и без запущенного агента.

Linux / macOS

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

Если ключ в другом файле — укажите его вместо id_rsa.

Windows (PowerShell, встроенный OpenSSH)

В PowerShell можно запустить/включить сервис агента и добавить ключ так:

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_rsa

Если файл ключа называется иначе — подставьте своё имя файла вместо id_rsa.

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

Для Linux / macOS

cat ~/.ssh/id_rsa.pub

Для Windows

notepad id_rsa.pub

Дальше:

1. Откройте GitHub Settings SSH and GPG keys

2. Нажмите New SSH key

3. Укажите имя (например: «мой ноутбук» или «мой сайт site.ru»)

На изображении пример названия и ключа
На изображении пример названия и ключа

4. Вставьте содержимое ключа и сохраните

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

ssh -T git@github.com

Успешный ответ выглядит так:

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

Если вы видите это сообщение, SSH‑подключение к GitHub настроено корректно — можно использовать SSH‑URL репозиториев вида git@github.com:username/repository.git для git clone, git pull и git push.

Code -> SSH -> Copy URL to clipboard
Code -> SSH -> Copy URL to clipboard

Возможные ошибки

Permission denied (publickey) — ключ не добавлен в агент или не загружен на GitHub. Проверьте: ssh-add -l

Could not load SSH key — агент не запущен или ключ не добавлен. Повторите ssh-add ~/.ssh/id_rsa

Host key verification failed — добавьте GitHub в доверенные хосты:

ssh-keyscan github.com >> ~/.ssh/known_hosts

Заключение

После настройки SSH вы получаете защищённое соединение с GitHub, доступ без ввода логина и пароля и более удобную работу с автоматизацией и CI/CD. Если вы только начинаете знакомство с Git и GitHub, настройка SSH — отличный старт для уверенной и безопасной работы с репозиториями.