Как подключиться к закрытым репозиториям GitHub с Ubuntu

Закрытые (private) репозитории на GitHub требуют аутентификации. На Ubuntu это удобно делать через SSH-ключи, что избавляет от постоянного ввода логина и пароля и повышает безопасность.

🔑 Шаг 1: Генерация SSH-ключа

Откройте терминал и выполните:

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

Если ваша версия OpenSSH не поддерживает ed25519, используйте:

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

При запросе пути сохранения можно указать имя файла, например:

~/.ssh/github_private_repo

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

Запустите агент и добавьте ключ:

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

🌐 Шаг 3: Добавление публичного ключа в GitHub

  1. Скопируйте содержимое файла ~/.ssh/github_private_repo.pub:
    cat ~/.ssh/github_private_repo.pub
  2. Зайдите в GitHub → SettingsSSH and GPG keys.
  3. Нажмите New SSH key, вставьте ключ в поле Key, задайте название (например, «Ubuntu Workstation») и сохраните.

⚙️ Шаг 4: Настройка SSH-конфига

Чтобы GitHub использовал нужный ключ, создайте или отредактируйте файл ~/.ssh/config:

Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_private_repo
IdentitiesOnly yes

📥 Шаг 5: Клонирование закрытого репозитория

Используйте SSH-адрес репозитория (его можно скопировать на странице репозитория в GitHub, выбрав вкладку SSH):

git clone git@github.com:username/private-repo.git

🛠️ Возможные проблемы

  • Permission denied (publickey) — проверьте, что ключ добавлен в ssh-agent и в GitHub.
  • Если у вас несколько ключей, убедитесь, что в ~/.ssh/config указан правильный IdentityFile.
  • Для доступа к чужому приватному репозиторию владелец должен добавить вас в Collaborators или в команду организации.

✅ Итог

Теперь вы можете безопасно работать с закрытыми репозиториями GitHub на Ubuntu, используя SSH-ключи. Это избавит от ввода пароля и обеспечит стабильный доступ к проектам.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *