Введение / Зачем это нужно
Использование SSH-ключей упрощает и защищает процесс аутентификации при работе с удаленными Git-репозиториями. Вместо ввода паролей вы используете пару ключей, что быстрее и безопаснее. После настройки вы сможете клонировать, изменять и отправлять изменения без лишних вопросов.
Требования / Подготовка
- Установленный Git версии 2.30 или выше.
- Доступ к терминалу (Linux, macOS или Windows с Git Bash/WSL).
- Права на запись в директорию
~/.ssh. - Аккаунт на GitHub, GitLab или другом Git-сервере, с которым вы хотите подключиться.
Пошаговая инструкция
Шаг 1: Генерация SSH-ключа
Создайте новый RSA-ключ с длиной бит 4096 бит. Это стандартный выбор для современного оборудования.
ssh-keygen -t rsa -b 4096 -C "user@example.com"
Следуйте подсказкам мастера: нажмите Enter, чтобы принять стандартное имя файла ~/.ssh/id_rsa, и, если хотите, добавьте парольную фразу. После завершения ключ будет сгенерирован.
Шаг 2: Добавление публичного ключа в провайдер
Публичная часть ключа хранится в файле ~/.ssh/id_rsa.pub. Откройте его, чтобы скопировать содержимое.
cat ~/.ssh/id_rsa.pub
Вставьте этот текст в настройки SSH-ключей вашего Git-хоста (например, GitHub → «SSH и GPG ключи» → «Добавить SSH-ключ»). Публичный ключ теперь привязан к аккаунту.
Шаг 3: Настройка SSH-агента и автодобавление ключа
SSH-агент управляет вашими ключами, автоматически подставляя их при необходимости. Инициализируйте агент и добавьте ваш ключ.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Добавьте конфигурацию, чтобы агент автоматически добавлял ключ при подключении:
echo -e "\nHost *\n\tAddKeysToAgent yes\n\tIdentityAgent ssh-agent" >> ~/.ssh/config
Шаг 4: Проверка подключения к репозиторию
Теперь проверьте, что аутентификация работает. Замените github.com на ваш хост, если нужно.
ssh -T git@github.com
Если вы видите сообщение «Hello
Шаг 5: Автодобавление ключа при подключении (опционально)
Для автоматического использования ключа при каждой сессии добавьте в ~/.ssh/config блок для конкретного хоста:
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Сохраните изменения. В следующих подключениях ключ будет автоматически подставляться через агент.
Проверка результата
Выполните клонирование репозитория, чтобы убедиться, что авторизация прошла успешно:
git clone git@github.com:username/repo.git
Если клонирование происходит без запроса пароля, настройка выполнена верно.
Возможные проблемы
- Ключ не принят – убедитесь, что публичный ключ добавлен в правильный аккаунт и что файл
~/.ssh/id_rsa.pubсодержит именно тот ключ, который вы вставили. - ssh-agent не работает – перезапустите агент:
eval "$(ssh-agent -s)"и повторитеssh-add. - Неправильные права доступа – проверьте права на директорию и файлы:
chmod 700 ~/.sshиchmod 600 ~/.ssh/*. - Git запрашивает пароль – возможно, ключ защищён паролем. Введите его или настройте автоматическое использование парольной фразы через
ssh-add -e/ssh-add -t.