Це команда git-remote-gcrypt, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн емулятор Windows або онлайн емулятор MAC OS
ПРОГРАМА:
ІМ'Я
git-remote-gcrypt - GNU Privacy Guard, зашифрований git remote
ОПИС
Віддалені допоміжні програми викликаються git для обробки мережевого транспорту. Цей помічник
ручки gcrypt:: URL-адреси, які отримають доступ до віддаленого сховища, зашифрованого за допомогою GPG, за допомогою нашого
користувацький формат.
Підтримувані місця розташування місцевий, rsync:// та sftp: //, де репозиторій зберігається як a
набір файлів або натомість будь-який де gcrypt буде зберігати те саме подання в a
git-репозиторій, об'єднаний через довільний транспорт git.
Мета — забезпечити конфіденційне, аутентифіковане сховище git та спільну роботу
типові ненадійні файлові хости або служби. БУДЬ ЛАСКА, допоможіть нам оцінити, наскільки добре ми відповідаємо цьому
мета дизайну!
ПРИМІТКА:
Це версія для розробки -- Формат репозитарію МОЖЕ ЗМІНИТИСЯ.
Швидкий початок
· Встановити git-remote-gcrypt шляхом запуску постачаного install.sh сценарій
· Створіть зашифрований пульт дистанційного керування, натиснувши на нього:
git remote додати cryptremote gcrypt::rsync://example.com:repo
git push cryptremote master
> gcrypt: Налаштування нового репозиторію
> gcrypt: віддалений ідентифікатор: :id:7VigUnLVYVtZx8oir34R
> [ більше рядків .. ]
> До gcrypt::[...]
> * [нова гілка] master -> master
КОНФІГУРАЦІЯ
Наступні git-config(1) підтримуються змінні:
дистанційний. .gcrypt-учасники
gcrypt.participants
Список ідентифікаторів ключів GPG, розділених пробілами. Пульт дистанційного керування зашифрований для них
учасників і приймаються лише підписи від них. gpg -k перераховує всі загальнодоступні
ключі, які ви знаєте.
Якщо цей параметр не встановлено, ми шифруємо ваш ключ за замовчуванням і приймаємо будь-які дійсні
підпис. Цю поведінку також можна запросити явно, налаштувавши учасників
до простий.
Команда gcrypt-учасники налаштування на пульті має пріоритет над сховищем
змінна gcrypt.participants.
дистанційний. .gcrypt-publish-participants
gcrypt.publish-учасники
За замовчуванням ідентифікатори ключів gpg учасників приховуються за допомогою шифрування
gpg -R. Встановлення цієї опції на правда вимикає цей захід безпеки.
Проблема з використанням gpg -R полягає в тому, що для розшифрування gpg пробує кожен доступний секрет
ключ по черзі, поки він не знайде ключ, який можна використовувати. Це може призвести до непотрібної парольної фрази
підказки.
дистанційний. .gcrypt-signingkey
user.signingkey
(Останнє зі звичайної конфігурації git) Ключ для підписання. Ти повинен
комплект user.signingkey якщо ваш ключ підпису за замовчуванням не є частиною учасника
список. Ви можете використовувати віддалену версію для підписання різних пультів за допомогою різних
ключі.
НАВКОЛИШНЄ СЕРЕДОВИЩЕ ЗМІННІ
GCRYPT_FULL_REPACK
Ця змінна середовища змушує повне перепакування під час натискання.
ПРИКЛАДИ
Як налаштувати пульт для двох учасників:
git remote додати cryptremote gcrypt::rsync://example.com:repo
git config remote.cryptremote.gcrypt-participants "KEY1 KEY2"
git push cryptremote master
Як використовувати бекенд git:
# зауважте, що цільове репо git має вже існувати і його
# `наступна` гілка буде перезаписана!
git remote додати gitcrypt gcrypt::[захищено електронною поштою]:repo#наступ
git push gitcrypt master
Фрагмент URL-адреси (#наступний тут) вказує, яка гілка бекенда використовується.
ПРИМІТКИ
Співпраця
Шифрування маніфесту оновлюється для кожного натискання відповідно до учасника
конфігурації. Кожен користувач, який натискає, повинен мати відкриті ключі всіх співробітників і
правильна конфігурація учасника.
Залежності
rsync та витися для пультів rsync: та sftp: відповідно. Основний виконуваний файл
вимагає POSIX-сумісної оболонки, яка підтримує місцевий.
GNU Конфіденційність Охорона
Підтримуються як GPG 1.4, так і 2. Вам потрібен особистий ключ GPG. Конфігурація GPG
застосовується до вибору алгоритму для шифрування з відкритим ключем, симетричного шифрування та
підписання. Побачити людина gpg для отримання додаткової інформації.
віддалений ID
Remote ID не є секретним; це лише гарантує, що два репозиторії підписані
можна відрізнити одного і того ж користувача. Ви побачите попередження, якщо ідентифікатор Remote ID зміниться,
що має статися, лише якщо пульт дистанційного керування було створено повторно.
Сховище сформований
EncSign(X): Підпишіть і зашифруйте для власника ключа GPG
Шифрувати (K,X): Шифрування за допомогою алгоритму симетричного ключа
Хеш (X): SHA-2/256
B: список філій
L: список хешів (Hi) і ключ (Ki) для кожного пакувального файлу
R: Віддалений ідентифікатор
Щоб написати репозиторій:
Зберігайте кожен файл pack P as Шифрувати (Ki, P) → P' в імені файлу Hi
де Ki є новим випадковим рядком і хеш (P') → Hi
Магазин EncSign(B || L || R) в маніфесті
Щоб прочитати репозиторій:
Отримайте маніфест, розшифруйте та перевірте за допомогою брелока GPG → (Б, L, R)
Попередити, якщо R не відповідає раніше віддаленому ідентифікатору
для кожного привіт, Ki in L:
Отримати файл Hi із сервера → P'
Перевірити хеш (P') сірники Hi
Розшифрувати P' використання Ki → P потім відкрити P з git
Маніфест файл
Приклад файлу маніфесту (з крапками для стислості):
$ gpg -d 91bd0c092128cf2e60e1a608c31e92caf1f9c1595f83f2890ef17c0e4881aa0a
542051c7cd152644e4995bda63cc3ddffd635958 refs/heads/next
3c9e76484c7596eff70b21cbe58408b2774bedad refs/heads/master
pack :SHA256:f2ad50316...cd4ba67092dc4 z8YoAnFpMlW...3PkI2mND49P1qm
pack :SHA256:a6e17bb4c...426492f379584 82+k2cbiUn7...dgXfyX6wXGpvVa
keep :SHA256:f2ad50316...cd4ba67092dc4 1
репо :id:OYiSleGirtLubEVqJpFF
Кожен елемент розширюється до нового рядка та відповідає одному з наступних:
Ідентифікатор об’єкта Git та його посилання
пакет : :
Хеш файлу пакету (Hi) і відповідний симетричний ключ (Ki).
тримати : :
Хеш Packfile та генерація його перепакування
репо
Віддалений ідентифікатор
доп ...
Поле розширення, збережено, але не використовується.
ДЕТЕКТУВАННЯ GCRYPT РЕПО
Щоб визначити, чи є git url репозиторією gcrypt, використовуйте: git-remote-gcrypt --check url Статус виходу, якщо
0, якщо репозиторія існує і може бути розшифрована, 1 якщо репо використовує gcrypt, але не може бути
розшифровано, і 100, якщо репо не зашифровано за допомогою gcrypt (або доступ до нього недоступний).
Зауважте, що це має отримати вміст репо в локальний репозиторій git, так само, як
виконується при використанні репозиторії gcrypt.
Використовуйте git-remote-gcrypt онлайн за допомогою служб onworks.net