README: expand PAT creation steps (GitHub UI) in-repo
This commit is contained in:
@@ -72,23 +72,62 @@ git pull origin main
|
|||||||
|
|
||||||
#### Способ 2: HTTPS + Personal Access Token (PAT)
|
#### Способ 2: HTTPS + Personal Access Token (PAT)
|
||||||
|
|
||||||
GitHub **не принимает** обычный пароль аккаунта для Git по HTTPS; нужен **токен**: **Settings → Developer settings → Personal access tokens**.
|
GitHub **не принимает** обычный пароль от аккаунта для операций `git clone` / `git pull` / `git push` по **HTTPS**. Вместо пароля нужно создать **Personal Access Token (PAT)** и вводить его там, где Git спрашивает пароль.
|
||||||
|
|
||||||
После создания токена при `git pull` в качестве пароля вставляйте **токен** (логин — ваш логин GitHub).
|
##### Создание классического токена (Tokens classic) — проще всего для Git
|
||||||
|
|
||||||
Чтобы **не вводить токен каждый раз**, можно один раз сохранить учётные данные (токен хранится **в открытом виде** в `~/.git-credentials` — только на доверенных машинах):
|
1. Войдите на **github.com** под нужным аккаунтом.
|
||||||
|
2. В правом верхнем углу откройте меню **аватара** → **Settings** (Настройки).
|
||||||
|
3. В **левой колонке** прокрутите вниз до раздела **Developer settings** (Параметры разработчика) и откройте его.
|
||||||
|
4. Выберите **Personal access tokens** → **Tokens (classic)**.
|
||||||
|
5. Нажмите **Generate new token** → **Generate new token (classic)**.
|
||||||
|
6. Заполните поля:
|
||||||
|
- **Note** — произвольное имя (например `ubuntu-haproxy-pull`), чтобы потом понимать, зачем токен.
|
||||||
|
- **Expiration** — срок действия (чем короче, тем безопаснее; для сервера часто выбирают ограниченный срок и потом перевыпускают).
|
||||||
|
- **Select scopes** — для **приватного** репозитория и `pull`/`push` включите минимум **`repo`** (полный доступ к репозиториям). Если нужен только **чтение** приватного репо, в классических токенах по-прежнему часто отмечают **`repo`**, т.к. узкого «только read» в classic нет; для **только pull** удобнее **fine-grained** (ниже).
|
||||||
|
7. Нажмите **Generate token** внизу страницы.
|
||||||
|
8. **Сразу скопируйте** строку токена (начинается часто с `ghp_…`). GitHub покажет её **один раз**; после ухода со страницы повторно не отобразит.
|
||||||
|
|
||||||
|
##### Fine-grained token (по желанию, гибче по правам)
|
||||||
|
|
||||||
|
1. Те же **Settings** → **Developer settings** → **Personal access tokens** → **Fine-grained tokens**.
|
||||||
|
2. **Generate new token**.
|
||||||
|
3. Укажите **имя**, **срок**, в блоке **Repository access** выберите «только выбранный репозиторий» **reverse-proxy** (или «все» — по политике безопасности).
|
||||||
|
4. В **Permissions** для чтения/обновления кода задайте **Contents**: Read-only или Read and write, при необходимости **Metadata**: Read.
|
||||||
|
5. Создайте токен и **скопируйте** его (формат обычно `github_pat_…`).
|
||||||
|
|
||||||
|
##### Использование PAT в Git на Ubuntu
|
||||||
|
|
||||||
|
- **Username** (логин): ваш **логин GitHub** (короткое имя пользователя), не e-mail, если Git явно просит username.
|
||||||
|
- **Password**: вставьте **целиком PAT** (не пароль от сайта).
|
||||||
|
|
||||||
|
Пример первого клонирования по HTTPS:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/PTah/reverse-proxy.git
|
||||||
|
# при запросе: Username = ваш_логин_github
|
||||||
|
# Password = вставить PAT
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Чтобы не вводить PAT каждый раз
|
||||||
|
|
||||||
|
Токен хранится **в открытом виде** в `~/.git-credentials` — используйте только на **доверенных** машинах:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git config --global credential.helper store
|
git config --global credential.helper store
|
||||||
# затем один раз выполнить git pull и ввести логин + PAT — дальше подставятся из файла
|
cd ~/reverse-proxy
|
||||||
|
git pull origin main
|
||||||
|
# один раз ввести Username + PAT — дальше подставятся из файла
|
||||||
```
|
```
|
||||||
|
|
||||||
Более безопасный вариант — кеш на время сессии (в секундах):
|
Кеш в памяти на заданное время (секунды), без постоянной записи в файл:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git config --global credential.helper 'cache --timeout=28800'
|
git config --global credential.helper 'cache --timeout=28800'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
После истечения срока кеша или срока действия токена на GitHub снова создайте новый PAT и при необходимости обновите сохранённые учётные данные (удалите строчку с `github.com` из `~/.git-credentials` или снова выполните `git pull` и введите новый токен).
|
||||||
|
|
||||||
#### Способ 3: только чтение, репозиторий публичный
|
#### Способ 3: только чтение, репозиторий публичный
|
||||||
|
|
||||||
Для **публичного** репозитория `git clone` и `git pull` по HTTPS **учётные данные не нужны** — отдельная настройка не требуется.
|
Для **публичного** репозитория `git clone` и `git pull` по HTTPS **учётные данные не нужны** — отдельная настройка не требуется.
|
||||||
|
|||||||
Reference in New Issue
Block a user