From 6740b2d37f5c8918adb88199fb9d72d71b526191 Mon Sep 17 00:00:00 2001 From: PTah Date: Sat, 11 Apr 2026 19:04:51 +1000 Subject: [PATCH] README: clone on Ubuntu, git pull, SSH/PAT auth --- README.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ffcb32c..7cc5cf8 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,93 @@ TLS: на целевых серверах используются **wildcard-с Репозиторий: [https://github.com/PTah/reverse-proxy](https://github.com/PTah/reverse-proxy) +## Клонирование на Ubuntu, обновление и доступ без постоянного ввода пароля + +### Установка Git + +```bash +sudo apt update +sudo apt install -y git +``` + +### Первое клонирование + +**Публичный** репозиторий можно клонировать **без логина и пароля**: + +```bash +cd ~ +git clone https://github.com/PTah/reverse-proxy.git +cd reverse-proxy +``` + +Если репозиторий станет **приватным** или понадобятся **push**-правки с сервера, используйте один из способов ниже. + +### Обновление локальной копии + +```bash +cd ~/reverse-proxy +git pull origin main +``` + +После `git pull` снова скопируйте при необходимости файлы в `/etc/haproxy/` (см. раздел «Установка конфигурации»). + +### Как не вводить логин и пароль при каждом `git pull` / `git push` + +#### Способ 1: SSH-ключ (предпочтительно) + +1. Создайте ключ (имя файла можно своё): + + ```bash + ssh-keygen -t ed25519 -C "ubuntu-haproxy" -f ~/.ssh/id_ed25519_github + ``` + + Парольную фразу можно задать или оставить пустой (на сервере оцените риски). + +2. Покажите **публичный** ключ и добавьте его в GitHub: **Settings → SSH and GPG keys → New SSH key**. + + ```bash + cat ~/.ssh/id_ed25519_github.pub + ``` + +3. Проверьте доступ: + + ```bash + ssh -T git@github.com + ``` + +4. Клонируйте по **SSH** (или смените URL у уже существующего клона): + + ```bash + git clone git@github.com:PTah/reverse-proxy.git + # уже склонировано по HTTPS — переключение: + # git remote set-url origin git@github.com:PTah/reverse-proxy.git + ``` + +Дальше `git pull` / `git push` идут по SSH **без пароля GitHub** (при необходимости один раз вводится только passphrase ключа, если вы её задали; её можно кешировать через `ssh-agent`). + +#### Способ 2: HTTPS + Personal Access Token (PAT) + +GitHub **не принимает** обычный пароль аккаунта для Git по HTTPS; нужен **токен**: **Settings → Developer settings → Personal access tokens**. + +После создания токена при `git pull` в качестве пароля вставляйте **токен** (логин — ваш логин GitHub). + +Чтобы **не вводить токен каждый раз**, можно один раз сохранить учётные данные (токен хранится **в открытом виде** в `~/.git-credentials` — только на доверенных машинах): + +```bash +git config --global credential.helper store +# затем один раз выполнить git pull и ввести логин + PAT — дальше подставятся из файла +``` + +Более безопасный вариант — кеш на время сессии (в секундах): + +```bash +git config --global credential.helper 'cache --timeout=28800' +``` + +#### Способ 3: только чтение, репозиторий публичный + +Для **публичного** репозитория `git clone` и `git pull` по HTTPS **учётные данные не нужны** — отдельная настройка не требуется. + ## Соответствие имён и адресов | Служба | Внешнее имя (клиенты) | Внутренний хост / IP | Порт снаружи | @@ -64,7 +151,11 @@ sudo haproxy -c -f /etc/haproxy/haproxy.cfg 1. Убедитесь, что установлен HAProxy **2.4+** (см. раздел выше). -2. Скопируйте `haproxy.cfg` в `/etc/haproxy/haproxy.cfg`. +2. Скопируйте `haproxy.cfg` в `/etc/haproxy/haproxy.cfg`. Пример, если репозиторий лежит в домашнем каталоге: + + ```bash + sudo cp ~/reverse-proxy/haproxy.cfg /etc/haproxy/haproxy.cfg + ``` 3. Списки доверенных адресов для RDP и SSH: ```bash