Работа с приватными репозиториями Github

В этой статье вашему вниманию будет представлена инструкция по работе с приватными репозиториями Github.com на виртуальном хостинге.

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

Ниже, вам представлена сама инструкция:

      1. Подключаемся по ssh
      2. Выполняем команду:
        ssh-keygen -t rsa -f ~/.ssh/sshkeygit -b 4096 -C "username@github.com"
        где:

        • sshkeygit — это название вашего ключа, который создается. Вы можете указать любое название
        • username — это имя вашего пользователя на сайте github.com

         

        • Далее вас просят указать пароль от ключа:
          Generating public/private rsa key pair.
          Enter passphrase (empty for no passphrase):
        • Далее вас просят повторить пароль от ключа:
          Enter same passphrase again:
        • Если все успешно, вы увидите следующий результат:
          Your identification has been saved in /home/username/.ssh/sshkeygit.
          Your public key has been saved in /home/username/.ssh/sshkeygit.pub.
          The key fingerprint is:
          SHA256:3tC2vvn9e8xDIZnEDoZHfXguFtKX2ZCLD9gKeauHN68 username@github.com
          The key's randomart image is:
          +---[RSA 4096]----+
          |                      o.+ oo+|
          |                     . = B.*.|
          |                     .oo=.O. |
          |                    o.o +B.o |
          |                    Sooo.oo .|
          |                    . +o. .. |
          |                      .oo .o |
          |                    o.+. . .+|
          |                     oE*o .o=|
          +----[SHA256]-----+
        • Далее выполняем команду:
          cat .ssh/sshkeygit.pub
        • Получаем содержимое публичного ключа и копируем его:
          ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCkbQWMIkB0AGEvA6yw/5Yj2WEJ+RQVbOkVl2FVXQDvMDZl5RORJIOMYKACNhi2
          ...
          fcBARShsniGOnd/YTpKqAO3IjkbPewOnUf/DaePC6b8aDbngucJoxqbXZxMWueAFzaP+eyo6lzctrw== username@github.com
      3. Переходим на сайт Github.com — авторизуемся на сайте — переходим в Setting — далее в раздел SSH and GPG keys — в блоке SSH keys нажимаем на кнопку New SSH key — вставляем содержимое из пункта 2
      4. Возвращаемся в терминал и проверяем соединение, выполнив команду:
        ssh -i .ssh/sshkeygit -T git@github.com

        • Видим следующее сообщение:
          The authenticity of host 'github.com (140.82.121.3)' can't be established.
          ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
          ECDSA key fingerprint is MD5:7b:99:81:1e:4c:91:a5:0d:5a:2e:2e:80:13:3f:24:ca.
          Are you sure you want to continue connecting (yes/no)?
        • Пишем «yes«, жмем Enter и видим следующее сообщение:
          Enter passphrase for key '.ssh/sshkeygit':
        • Пишем пароль, который указывали на первом шаге. Если все сделали правильно, вы увидите следующий ответ:
          Hi username! You've successfully authenticated, but GitHub does not provide shell access.
        • Это означает, что у вас все хорошо и почти все готово для работы с Github. Почему «почти»? Разберем на следующем шаге.
      5. Если вы сейчас попробуете клонировать репозиторий, выполнив команду:
        git clone https://github.com/username/blog.git

        • Вы получите следующее сообщение:
          Клонирование в «blog»…
        • Далее вас попросят ввести логин и пароль с сайта Github:
          Username for 'https://github.com':
          Password for 'https://username@github.com':
        • Но вместо клонирования репозитория вы увидите следующее предупреждение и ошибку:
          remote: Support for password authentication was removed on August 13, 2021.
          remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
          fatal: Authentication failed for 'https://github.com/username/blog.git/'
      6. Для того чтобы выполнить клонирование репозитория, перейдите на сайт Github.com в настройки вашего аккаунта — далее перейдите в раздел Developer settings — далее в Personal access tokens и нажмите на кнопку Generate new tokenДля того чтобы создать токен, заполните следующие поля:
        • заполнение поля Note
        • выбор времени жизни токена Expiration
        • выбор области действия токена Select scopes, для данной инструкции хватит секции «repo«
        • для создания токена нажимаем на кнопку Generate token

        В разделе «Personal access tokens» будет виден созданный токен: ghp_jo0VFGSoG002PxLXO7uDEg8juFW3JT48iZ9Q (это не работающий пример)

        Скопируйте его и перейдите в обратно в терминал, в котором вы подключены по ssh к хостингу.

      7. Теперь вы можете выполнить команду клонирования, но она будет иметь следующий вид:
        git clone https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git

        1. На примере, команда будет выглядеть следующим образом:
          git clone https://git:ghp_jo0VFGSoG002PxLXO7uDEg8juFW3JT48iZ9Q@github.com/username/blog.git

          • обратите внимание, что username, который идет после https:// — должен быть git

           

        2. если вы сделали все верно, вы получите следующий ответ:
          Клонирование в «blog»…
          remote: Enumerating objects: 3, done.
          remote: Counting objects: 100% (3/3), done.
          remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
          Получение объектов: 100% (3/3), готово.
Оцените статью
Поделитесь статьей
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
In this article