Як налаштувати автентифікацію без пароля для приватного сховища GitHub?

Повторення одного і того ж завдання нудне і болісно для таких програмістів, як ми. чи не так?

Одним із таких завдань є взаємодія з приватним репозиторієм GitHub. Що про це? Ви знаєте, що це таке. І ви шукаєте способи її вирішення, і потрапили на цю статтю. Ви припините пошук після прочитання цієї статті.

Отже, тут ми поговоримо про доступ до приватного сховища GitHub без пароля. Без зайвих слів, давайте почнемо.

Є два способи отримати доступ до будь-якого сховища GitHub. Це HTTPS і SSH. Більшість із вас використовує HTTPS. Але тепер ви дізналися, що це неефективний спосіб використовувати метод HTTPS для клонування приватних сховищ.

Доступ включає клонування, натискання, витягування тощо; усе, що пов’язано з оновленням нашого репозиторію на віддаленому пристрої.

Немає жодних проблем, коли мова заходить про доступ до загальнодоступних сховищ. Але ми повинні пройти автентифікацію під час доступу до приватного сховища. Існують різні способи автентифікації.

Почнемо з найвідомішого…

Якщо використовується HTTPS

Можливо, вам варто знати про метод HTTPS і шукати інші. Давайте швидко подивимося, як за допомогою нього отримати доступ до приватного сховища.

  • Скопіюйте посилання на ваше приватне сховище.

Приватний репозиторій GitHub

  • Відкрийте термінал або cmd на своїй машині.
  • Вставте посилання команди git clone, щоб клонувати приватне сховище.
  • Замініть посилання посиланням на ваше приватне сховище.
  • Він попросить нас автентифікувати себе. Отже, нам потрібно ввести облікові дані GitHub.
  • Спочатку він попросить нас ввести наше ім’я користувача GitHub. Введіть своє ім’я користувача GitHub і натисніть Enter.

Ім’я користувача для автентифікації

  • Тепер нам потрібно ввести пароль. Введіть свій пароль GitHub і натисніть Enter.

Пароль автентифікації

Це воно; ми клонували приватне сховище за допомогою методу HTTPS. Тепер оновіть щось у сховищі, зафіксуйте та надішліть їх на віддалений пристрій.

Що ви помітили?

Він знову запитує автентифікацію.

Push-автентифікація

Хіба це не нудне та важке завдання вводити облікові дані кожного разу, коли ми взаємодіємо з приватним сховищем?

Так, це так.

Ми не можемо ввести свої облікові дані GitHub щоразу, коли взаємодіємо з нашим приватним репозиторієм. Це трудомісткий процес і сповільнює нашу роботу.

Позбутися від вищевказаної проблеми можна різними способами. Найкращий спосіб зробити це – використовувати SSH. Але є й інші способи зробити це. Давайте розглянемо їх усіх по черзі.

конфігурація .git

Вся інформація про версії наших репозиторіїв зберігається в каталозі .git. Це прихована папка. У ньому є файл конфігурації, який дозволяє нам налаштувати параметри. Але загалом це не рекомендується.

Ми можемо клонувати приватне сховище, додавши своє ім’я користувача та пароль до URL-адреси сховища, як описано нижче.

git clone https://<strong>username:password</strong>@github.com/<strong>username</strong>/<strong>repository_name</strong>.git

Оновіть ім’я користувача, пароль і repository_name відповідними деталями. Оскільки ми вказали свої облікові дані в URL-адресі, він не запитуватиме автентифікацію, як ми бачили раніше.

  Як продати свій Mac

Отже, ми збираємося дотримуватися описаного вище методу автентифікації та відповідно оновлювати конфігурацію нашого сховища. Давайте подивимося, як позбутися повторюваної автентифікації, оновивши URL-адресу.

  • Відкрийте папку .git у вашому клонованому сховищі.

Папка .git

  • Ви знайдете файл із назвою config. Відкрийте його за допомогою будь-якого текстового редактора на ваш вибір.
  • Там буде рядок із посиланням на наш репозиторій, як показано нижче.

Посилання на репозиторій у конфігурації

  • Оновіть URL-адресу, додавши своє ім’я користувача та пароль, як показано вище.

Оновлення URL-адреси сховища

Тепер знову оновіть щось у сховищі, зафіксуйте та надішліть їх.

Ви щось спостерігаєте?

Цього разу він не повинен був запитувати ваші облікові дані GitHub. Отже, ми вирішили нашу проблему, оновивши налаштування репозиторію.

Ви могли помітити, що це небезпечно. Оскільки ми виставляємо свої облікові дані. І цей метод не працюватиме, якщо ваш пароль GitHub містить символ @.

Таким чином, є деякі серйозні недоліки використання цього методу. Тому давайте проігноруємо це та перейдемо до наступного методу.

credential.helper

Credential.helper дозволяє нам назавжди зберігати облікові дані у файлі ~/.git-credentials.

Він збереже наші облікові дані, коли ми введемо їх уперше. Знову ж таки, коли ми намагаємося отримати доступ до приватного сховища, воно не запитуватиме облікові дані, доки їх не буде збережено у файлі ~/git-credentials. Отже, це один із способів уникнути нашої проблеми. Давайте подивимося на це в дії з точними кроками.

  • По-перше, нам потрібно активувати опцію для зберігання наших облікових даних за допомогою команди git config credential.helper store.
  • Після активації опції спробуйте отримати доступ до приватного сховища за допомогою свого імені користувача та пароля.
  • Після того, як ви введете своє ім’я користувача та пароль, він збереже їх у файлі ~/.git-credentials із вашими обліковими даними GitHub, як описано нижче.

git-облікові дані

Тепер знову той самий процес, щоб перевірити, чи працює він правильно чи ні. Оновлення, фіксація та надсилання. Я впевнений, що він не запитуватиме у вас облікові дані, якщо ви виконали наведені вище кроки для збереження своїх облікових даних.

Іде добре…

Що робити, якщо ви хочете зберегти облікові дані протягом 4 годин, а не назавжди?

Credential.helper надає можливість тимчасово зберігати наші облікові дані протягом певного часу. Ми використовуємо кеш замість сховища, щоб зберігати облікові дані протягом певного часу.

Кеш зберігатиме наші облікові дані протягом 15 хвилин за замовчуванням. Через 15 хвилин git знову запитає облікові дані. Але ми можемо змінити час за замовчуванням за допомогою такої команди.

git config credential.helper 'cache --timeout={time_in_seconds}'

Не забудьте вказати час у секундах. Давайте подивимося на це в дії.

  • По-перше, нам потрібно активувати опцію кешування наших облікових даних за допомогою команди git config credential.helper cache.
  • Отримайте доступ до приватного сховища за допомогою свого імені користувача та пароля.
  • Після того, як ви введете своє ім’я користувача та пароль, ваші облікові дані GitHub кешуватимуться протягом визначеного часу.
  Що краще між моніторами 21:9 проти 16:9?

Тепер оновіть, закріпіть і натисніть. Знову ж таки, він не запитуватиме ваші облікові дані, як ми сказали, щоб кешувати їх.

Ми показали вам команди для роботи з ініціалізованим репозиторієм git. Ми можемо глобально оновити конфігурацію git для всіх проектів, додавши прапорець –global у наведені вище команди.

Особисті маркери доступу

Особисті токени доступу використовуються для надання доступу до API GitHub. Особисті маркери доступу схожі на маркери OAuth. Отже, їх можна використовувати для базової автентифікації замість пароля для git. Отже, ми можемо використовувати особисті маркери доступу для вирішення нашої проблеми.

Давайте подивимося, як це зробити.

  • Увійдіть у свій обліковий запис GitHub.
  • Перейдіть до налаштувань.

Налаштування GitHub

  • Тепер перейдіть до налаштувань розробки на панелі навігації зліва.

Налаштування розробника GitHub

  • Натисніть особисті маркери доступу, щоб дістатися до кінцевого пункту призначення. Ви побачите особисті маркери доступу наступним чином.

Особисті маркери доступу GitHub

  • Натисніть «Створити новий маркер», щоб створити новий.

Згенерувати новий маркер

  • Введіть примітку для маркера. Ви можете сприймати це як короткі нотатки для запам’ятовування маркера.

Особистий маркер доступу Примітка

  • Виберіть дозволи для маркера. Програми, які використовують маркер, нададуть доступ до всіх вибраних дозволів. У нашому випадку виберіть репо.

Дозволи сховища

  • Прокрутіть униз і натисніть кнопку «Створити маркер».

Кнопка створення маркера

  • Він покаже особистий маркер доступу лише один раз, як описано нижче. Ми більше не можемо побачити наш особистий маркер. Отже, скопіюйте його та збережіть десь у надійному місці. За потреби використовуйте менеджер паролів.

Особистий маркер доступу

  • Ми успішно створили особистий маркер доступу.
  • Тепер настав час використовувати його для доступу до нашого приватного сховища.
  • Оновіть URL-адресу сховища у файлі .git/config як https://{personal_access_token}@github.com/hafeezulkareem/private_repository.git, подібно до першого методу.

Особистий маркер доступу в конфігурації

Тепер спробуйте отримати доступ до приватного сховища.

Він просив вас про автентифікацію?

Ні, він не запитуватиме вас про автентифікацію, доки маркер не стане активним. Переходимо до останнього способу вирішення нашої проблеми.

SSH

SSH використовується для автентифікації. Повний документ про SSH можна знайти на GitHub тут.

Ідея проста. Згенеруйте ключ SSH, додайте його до облікового запису GitHub і насолоджуйтеся автентифікацією без пароля.

Давайте розглянемо ці три кроки докладніше.

  • Відкрийте термінал або cmd у вашій системі.
  • Введіть команду ssh-keygen -t rsa, щоб створити новий ключ SSH.
  • Він запитає каталог для збереження ключа. Натисніть Enter, щоб вибрати каталог за замовчуванням. Але ви також можете змінити каталог відповідно до ваших уподобань. Тут ми використовуємо каталог за замовчуванням.
  25 найкращих інструментів тестування API

Каталог SSH

  • Тепер нам потрібно ввести парольну фразу, щоб захистити наш ключ SSH. Але це необов’язково.
    • Якщо ми вибираємо парольну фразу для ключа SSH, ми повинні вводити її першою, коли ми вмикаємо нашу систему.
    • Якщо ми не вибрали парольну фразу, то її не потрібно вводити спочатку.

Пароль SSH

  • Введіть парольну фразу ще раз, щоб підтвердити її.

Пароль SSH

  • Нарешті, він згенерує для нас новий ключ SSH наступним чином.

Ключ SSH

Ми успішно згенерували новий ключ SSH у наших системах. Буде створено два файли наступним чином (якщо ви змінили шлях, імена файлів можуть відрізнятися).

Ключові файли SSH

Тепер настав час підключитися до нашого облікового запису GitHub. Вміст файлу з розширенням .pub потрібно скопіювати в наш обліковий запис GitHub для підключення. У моєму випадку це id_rsa.pub.

  • Увійдіть у свій обліковий запис GitHub.
  • Відкрийте налаштування.

Налаштування GitHub

  • Натисніть ключі SSH і GPG, щоб дістатися до кінцевого пункту призначення.

Ключі SSH і GPG

  • Натисніть «Новий ключ SSH», щоб додати новий згенерований ключ SSH.

Новий ключ SSH

  • Ви перейдете до наступного екрана.

Новий ключ SSH

  • Додайте відповідний заголовок для ключа SSH. Ключі SSH різні для кожної системи. Отже, вибирати виходячи з нього є одним з хороших варіантів. Але це не єдиний варіант. Ви можете вибрати на основі інших речей на свій смак.
  • Після вибору заголовка скопіюйте та вставте вміст .pub у друге поле.

Новий ключ SSH

  • Нарешті натисніть клавішу Add SSH і підтвердьте доступ своїм паролем GitHub.
  • Щойно доданий ключ SSH виглядатиме наступним чином.

Новий ключ SSH

Ми додали наш нещодавно згенерований ключ SSH до GitHub. Тепер нам потрібно автентифікувати з’єднання SSH, щоб пізніше скористатися автентифікацією без пароля. Для цього введіть наступну команду в терміналі або cmd.

ssh -T [email protected]

Підключення SSH

Він запитає підтвердження. Підтвердьте це. І все, і ми закінчили.

Тепер клонуйте свій приватний репозиторій. Цього разу він не запитуватиме автентифікацію.

Оновлення, фіксація та надсилання. Ось так. Він більше не запитуватиме вас про автентифікацію. Насолоджуйся цим.

Висновок

Фу! ми розглянули різні методи доступу до приватних сховищ без постійного введення облікових даних. Ви можете використовувати будь-який метод. Але загальна та найкраща практика полягає у використанні методу SSH для автентифікації.

Знову ж таки, це залежить від ваших уподобань; немає суворого правила використовувати єдиний метод SSH. Але більшість компаній використовують для автентифікації метод SSH, який безпечний і економить багато часу. І переконайтеся, що ваші облікові дані в безпеці.

Щасливого розвитку 🙂